免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5155 | 回复: 6
打印 上一主题 下一主题

https 发送GET请求 接收不到页面信息【已解决】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-14 11:01 |只看该作者 |倒序浏览
主要的send和recv代码如下:
.....
.....
sprintf(request, "GET /%s HTTP/1.1\r\nAccept: */*\r\nAccept-Language: zh-cn\r\n\
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\r\n\
Host: %s:%d\r\nConnection: Close\r\n\r\n", host_file, host_addr, portnumber);/*准备request,将要发送给主机*/

    send = 0;
    totalsend = 0;
    nbytes = strlen(request);
    while (totalsend < nbytes)
    {
        send = SSL_write(ssl, request + totalsend, nbytes - totalsend);
        if (send == -1)
        {
                ERR_print_errors_fp(stderr);
                exit(0);
        }
        totalsend += send;
        printf("%d bytes send OK!\n", totalsend);
    }
/* 连接成功了,接收http响应,response */  
if ((iLength=SSL_read(ssl, buffer, MAX_DATA_SIZE)) > 0)
  {
          buffer[iLength]='\0';
        printf("recv :\n%s",buffer);
   }

程序一切正常,但就是通过ssl_read所接收到的打印数据没有页面信息,如同发送HEAD请求一样收到的仅仅是请求页面的首部,
在做http时,通过发送GET请求,用recv()函数就可以将页面信息全部获取
不知问题出在哪啦,望达人解答~~

[ 本帖最后由 ast_224 于 2008-10-15 17:05 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-10-14 12:33 |只看该作者

回复 #1 ast_224 的帖子

我不知道,但是顶你一下。
难得一个女生搞程序

论坛徽章:
0
3 [报告]
发表于 2008-10-14 12:45 |只看该作者
有可能ssl_read一次并没有读到所有的数据吧,多读几次试试

论坛徽章:
0
4 [报告]
发表于 2008-10-14 13:04 |只看该作者
buffer已经设的足够了,试了很多次,都只能读出首部信息
不知SSL_read是不是对接收的数据有限制
在这里似乎GET和HEAD没有什么区别
仍然迷惑中~~

论坛徽章:
0
5 [报告]
发表于 2008-10-14 15:52 |只看该作者
有没有和我遇到类似问题的啊
关于ssl_read的接收很迷惑,原本应该会出现在buffer有限的范围类的全部信息的啊
有熟悉OpenSSL的达人路过的话,顺便指定一下哈~·

[ 本帖最后由 ast_224 于 2008-10-14 16:03 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-10-15 05:16 |只看该作者
先抓包看一下,是否对端正确响应了。

论坛徽章:
0
7 [报告]
发表于 2008-10-15 09:37 |只看该作者

回复 #6 jsean 的帖子

包是完整的
有可能是报文的payload部分有0,做为字符串读取就被截断了
还是不闲麻烦单个字符的接收,可以全部获取数据~
3Q~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP