c代码aix移植到linux,IBM AIX5.3 linux下C/C++实现HTTPS接口(示例代码)

最近在工作中需要开发一个Https接口,其不同于http、soap等协议,可以直接组织报文并发送,不存在加密,认证和获取密钥等安全操作。且之前开发的项目没有开发过这类接口,所以当时压力很大。

通过网上查阅资料,要实现https接口,必须现在本机上安装openssl和curl(说明:只用opessl也可以实现https,目前我是使用openssl和curl)。

在安装openssl和curl过程中吃了不少苦头,因为服务器是IBM AIX5.3,服务器很久没升级打补丁很多软件安装都不能顺利进行,可以说是高不成低不就。尝试很多发布版本的安装,结果都不尽人意,在快要绝望时,在http://blog.sina.com.cn/s/blog_541a3cf101017869.html网站上看到了希望,在IBM AIX5.3下安装OpenSSL 0.9.8m可以成功,之前安装的是OpenSSL 0.9.8a失败(报Trace/BPT trap(coredump)错误)。

下面说明下openssl和curl的安装步骤说明:openssl安装步骤

gunzip opensll-0.9.8m.tar.gz

tar xvfopensll-0.9.8m.tar

./config --prefix=自定义安装路径

make

make installcurl安装步骤

gunzip curl-7.24.0.tar.gz

tar xvf curl-7.24.0.tar

./configure --with-ssl=openssl的安装路径 --prefix=自定义curl安装路径

make

make install

一下给出https客户端接口代码:

long CHomeAnFangIt::Post(const std::string& url,const std::string& putObject, std::string& rsp){

CURL* curl=curl_easy_init();    if(!curl)    {        logger->info("Init curl error.");        return -1;    }

curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120);    curl_easy_setopt(curl, CURLOPT_URL, url.c_str());    curl_easy_setopt(curl, CURLOPT_POST, true); // POST    curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,s_UrlWrite);    curl_easy_setopt( curl , CURLOPT_POSTFIELDS, putObject.c_str());    curl_easy_setopt( curl , CURLOPT_POSTFIELDSIZE, putObject.size());    curl_easy_setopt(curl,CURLOPT_WRITEDATA,&rsp);    curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);    curl_easy_setopt(curl, CURLOPT_USE_SSL, 1);    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);

CURLcode c=curl_easy_perform(curl);    if(c!=CURLE_OK)    {        logger->info("curl_easy_perform error,err=%d",c);        curl_easy_cleanup(curl);        return -1;    }

long rsp_code=0;    curl_easy_getinfo(curl,CURLINFO_RESPONSE_CODE,&rsp_code);

curl_easy_cleanup(curl);    return rsp_code;}

总结:

对新知识的上手速度不够,当遇到一个难题陷入瓶颈时,想到的是退缩,认为此问题无法解决。这样的思维是不好的。要利用目前所有信息,不断的搜索查询,总会有奇迹出现,胜利总会眷顾永不放弃的人。

当一个程序dump掉后,会在当前目录下生成core文件,我们可以使用gdb单步调式查看core发生错误的位置,把调用函数全称搜索并获取信息解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值