|
发表于 2016-2-27 11:02:18
|
显示全部楼层
使用 socket 連接 百度地圖 80端口 發送 http協議的 文本 數據 或者使用封裝好的庫
孤比較愛使用poco 的 HTTPClient 組件
- int _tmain(int argc, _TCHAR* argv[])
- {
- try
- {
- const Poco::URI uri("http://127.0.0.1:1102/123.html?id=12");
- //創建會話
- Poco::Net::HTTPClientSession session(uri.getHost(),uri.getPort());
- std::string path = uri.getPathAndQuery();
- //創建請求 使用POST模式
- Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST,path);
-
- //設置 http 頭信息 (可選)
- {
- //設置 keep-alive
- session.setKeepAlive(true);
- request.setKeepAlive(true);
- //為請求設置 cookie
- Poco::Net::NameValueCollection name_value_c;
- name_value_c.add("c1","v1");
- name_value_c.add("c2","v2");
- request.setCookies(name_value_c);
-
- //其他頭信息
- request.set("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
- //...
- }
- //設置超時時間 5 秒
- session.setTimeout(Poco::Timespan(5,0));
- //設置form
- Poco::Net::HTMLForm form;
- form.set("id", "123");
- form.set("password", "pass");
- form.prepareSubmit(request);
- //form.setEncoding(Poco::Net::HTMLForm::ENCODING_MULTIPART);
-
- //發出請求
- std::ostream& ostream = session.sendRequest(request);
- form.write(ostream); //寫入form信息
- //獲取響應
- Poco::Net::HTTPResponse response;
- std::istream& rs = session.receiveResponse(response);
-
- std::string str;
- Poco::StreamCopier::copyToString(rs,str);
- //Poco::StreamCopier::copyStream(rs,std::cout);
- }
- catch(const Poco::Exception& e)
- {
- std::cout<<e.displayText()<<std::endl;
- }
- std::system("pause");
- return 0;
- }
复制代码 |
|