POCO库下访问HTTPS获取返回的JSON数据
2016-04-08 10:56
911 查看
访问HTTPS不同于访问HTTP,一些接口如登录还有一些需要数据加密的就需要访问HTTPS才能获取到返回数据,下面是具体介绍:
1.下载POCO库,下载时需要注意POCO库(下载地址点击打开链接)有俩个版本,其中一个是没有HTTPS文件的,这是我们要下载下面的库(poco-1.7.2-all),然后编译使用
2.下载完POCO库后还不能直接用,需要下载ActivePerl(下载地址点击打开链接)和OpenSSL(下载地址点击打开链接),然后编译将生成include、bin和lib文件拷到相应工程目录下(具体编译方法不做介绍了,可去网上搜),然后就可以进行访问了
下面的是具体的访问代码:
1.下载POCO库,下载时需要注意POCO库(下载地址点击打开链接)有俩个版本,其中一个是没有HTTPS文件的,这是我们要下载下面的库(poco-1.7.2-all),然后编译使用
2.下载完POCO库后还不能直接用,需要下载ActivePerl(下载地址点击打开链接)和OpenSSL(下载地址点击打开链接),然后编译将生成include、bin和lib文件拷到相应工程目录下(具体编译方法不做介绍了,可去网上搜),然后就可以进行访问了
下面的是具体的访问代码:
#include "stdafx.h" #include <iostream> #include "Poco/Net/HTMLForm.h" #include "Poco/URI.h" #include "Poco/Net/HTTPClientSession.h" #include "Poco/Net/HTTPRequest.h" #include "Poco/Net/HTTPResponse.h" #include "Poco/StreamCopier.h" #include "Poco/Net/NetException.h" #include "Poco/JSON/Object.h" #include "Poco/JSON/Parser.h" #include "Poco/Dynamic/Var.h" #include "Poco/Net/HTTPSClientSession.h" #include "Poco/Net/Context.h" #include "Poco/Net/SSLException.h" using namespace::Poco::JSON; int _tmain(int argc, _TCHAR* argv[]) { Poco::URI purl("");//这里输入完整的URL try { Poco::Net::Context::Ptr context = new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "", Poco::Net::Context::VERIFY_NONE, 9, false); Poco::Net::HTTPSClientSession session(context); session.setHost(purl.getHost()); session.setPort(purl.getPort()); Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_GET, purl.getPathAndQuery(), Poco::Net::HTTPMessage::HTTP_1_1); std::ostream& ostr = session.sendRequest(req); Poco::Net::HTTPResponse res; std::istream& istr = session.receiveResponse(res); std::string temp; Poco::StreamCopier::copyToString(istr, temp); std::cout << temp << std::endl; } catch (const Poco::Net::SSLException& e) { std::cerr << e.what() << ": " << e.message() << std::endl; } catch (const std::exception& e) { std::cerr << e.what() << std::endl;; } system("PAUSE"); return 0; }
相关文章推荐
- 如何从网络上获取图片转换成字节流或者保存到本地
- Linux netstat --检验本机各端口的网络连接情况
- Linux nc --网络工具
- 固网现代化服务:让铜线网络焕发青春
- Java访问https接口实现
- Nginx 开启http目录下载
- Http的常见问题
- System.Net.WebException: The operation has timed out at System.Net.HttpWebRequest.GetResponse()
- TCP/IP协议栈 头部参数
- Linux iftop --网络流量监控
- Linux ifstat --网络接口检测工具
- Linux ifconfig --网络配置命令
- 网络字节序与主机字节序
- Java 通过httpClient Post方式提交xml,并从服务端返回数据
- HTTP响应头和请求头信息对照表
- Apache网络爬虫框架nutch安装教程
- linux网络基础
- 《网络工程师》 Part1 操作系统
- Http协议详解
- 非常好用的网络请求调试工具(chrome postman)