VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 3028|回复: 7

[求助] 怎样去http post

[复制链接]
09_avatar_middle
online_vip 发表于 2016-2-27 09:30:08 | 显示全部楼层 |阅读模式
我想去调用百度地图api,但是不知道怎样把我文件数据post上去
QQ图片20160227092751.png




上一篇:关于MFC CMFCDynamicLayout类的用途
下一篇:关于MFC的 SetFocus函数问题
74_avatar_middle
在线会员 发表于 2016-2-27 11:02:18 | 显示全部楼层
使用 socket 連接 百度地圖 80端口 發送 http協議的 文本 數據 或者使用封裝好的庫

孤比較愛使用poco 的 HTTPClient 組件

  1. int _tmain(int argc, _TCHAR* argv[])
  2. {
  3.         try
  4.         {
  5.                 const Poco::URI uri("http://127.0.0.1:1102/123.html?id=12");

  6.                 //創建會話
  7.                 Poco::Net::HTTPClientSession session(uri.getHost(),uri.getPort());

  8.                 std::string path        =        uri.getPathAndQuery();
  9.                 //創建請求 使用POST模式
  10.                 Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST,path);
  11.                        
  12.                 //設置 http 頭信息        (可選)
  13.                 {
  14.                         //設置 keep-alive
  15.                         session.setKeepAlive(true);
  16.                         request.setKeepAlive(true);

  17.                         //為請求設置 cookie
  18.                         Poco::Net::NameValueCollection name_value_c;
  19.                         name_value_c.add("c1","v1");
  20.                         name_value_c.add("c2","v2");
  21.                         request.setCookies(name_value_c);
  22.                
  23.                         //其他頭信息
  24.                         request.set("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
  25.                         //...
  26.                 }

  27.                 //設置超時時間 5 秒
  28.                 session.setTimeout(Poco::Timespan(5,0));

  29.                 //設置form
  30.                 Poco::Net::HTMLForm form;
  31.                 form.set("id", "123");
  32.                 form.set("password", "pass");
  33.                 form.prepareSubmit(request);
  34.                         //form.setEncoding(Poco::Net::HTMLForm::ENCODING_MULTIPART);
  35.         
  36.                 //發出請求
  37.                 std::ostream& ostream = session.sendRequest(request);
  38.                 form.write(ostream);                        //寫入form信息

  39.                 //獲取響應
  40.                 Poco::Net::HTTPResponse response;
  41.                 std::istream& rs        =        session.receiveResponse(response);
  42.                
  43.                 std::string str;
  44.                 Poco::StreamCopier::copyToString(rs,str);
  45.                 //Poco::StreamCopier::copyStream(rs,std::cout);
  46.         }
  47.         catch(const Poco::Exception& e)
  48.         {
  49.                 std::cout<<e.displayText()<<std::endl;
  50.         }

  51.         std::system("pause");
  52.         return 0;
  53. }
复制代码
09_avatar_middle
ico_lz  楼主| 发表于 2016-2-27 13:27:27 | 显示全部楼层
zuiwuchang 发表于 2016-2-27 11:02
使用 socket 連接 百度地圖 80端口 發送 http協議的 文本 數據 或者使用封裝好的庫

孤比較愛使用poco  ...

看不到我想要的  post还要发文件啊
51_avatar_middle
online_admins 发表于 2016-2-27 15:44:35 | 显示全部楼层
jtl996 发表于 2016-2-27 13:27
看不到我想要的  post还要发文件啊

嗯,point_list 是个必选参数,文件类型是 csv 肯定有文件了
09_avatar_middle
ico_lz  楼主| 发表于 2016-2-27 17:47:25 | 显示全部楼层
Syc 发表于 2016-2-27 15:44
嗯,point_list 是个必选参数,文件类型是 csv 肯定有文件了

老大,怎么弄啊,教教我
51_avatar_middle
online_admins 发表于 2016-2-27 22:31:44 | 显示全部楼层
jtl996 发表于 2016-2-27 17:47
老大,怎么弄啊,教教我

这个得具体抓包看看啦
74_avatar_middle
在线会员 发表于 2016-2-28 12:08:55 | 显示全部楼层
jtl996 发表于 2016-2-27 13:27
看不到我想要的  post还要发文件啊

孤只是將以前自己測試的例子 post上來以作參考 當然不可能 包含  HTTPClient 的完全用法
不會自己 google poco HTTPClient 的用法 或者 看poco官方api文檔?


這是一個 post file 例子
https://developersarea.wordpress ... g-poco-c-libraries/

這是poco官方文檔
http://pocoproject.org/docs
46_avatar_middle
在线会员 发表于 2016-3-11 01:39:02 | 显示全部楼层
poco 的 HTTPClient 組件
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-6-19 20:01

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表