使用BIO开发https客户端的问题

olmouse 2013-06-03 02:26:25
我的代码大致如下:
BIO *bio;
SSL_CTX *ctx ;
SSL * ssl;
SSL_library_init();
SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms();

const SSL_METHOD *meth=SSLv3_client_method();
ctx= SSL_CTX_new(meth);
bio = BIO_new_ssl_connect(ctx);
BIO_set_conn_hostname(bio, "127.0.0.1:https");
BIO_do_accept(bio);

std:string szContent="name=admin&password=";
char tmp[128];
sprintf(tmp,"Content-Length: %d\r\n",szContent.size());
szHead+="POST /api/Query.action HTTP/1.0\r\n";
szHead+="Host: query.unionpaysecure.com\r\n";
szHead+="Content-Type: text/plain;charset=UTF-8\r\n";
szHead+=tmp;
szHead+="Connection: close\r\n";
szHead+="\r\n";
szHead+=szContent;

IO_write(bio,szHead.c_str(),szHead.size());
char msg[1025];
for(;;)
{
memset(msg,0,1025);
int nRet=BIO_read(bio,msg,1024);
if(nRet<=0){
break;
}else{
printf(msg);
szContent+=msg;
}
}

SSL_CTX_free(ctx);
BIO_free_all(bio);

-----------------------------------
服务器端没有收到POST的内容(name和password)或者说post环境的内容是空的
不知道哪里出问题了
...全文
110 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧