HttpSendRequest无法返回?

sdbus 2011-11-03 09:25:23
进行HttpSendRequest函数调用时,等了两分钟竟然无法返回,但在服务器查看,实际已
经收到了客户端的数据,也就是说此函数发送数据成功.服务器端已经在收到数据后马上进行
了数据回复.
但是客户端的HttpSendRequest函数就是没有返回.
在对此句柄进行了强制断开,再获取ERROR CODE 有时为TIMEOUT ,有时为OPERATION_CANCELLED(操作取消,强制断开).
有没有人遇到此问题?平时一直工作很好,当用此函数进行网络下载时就会出现此问题.
开发环境为WINCE.
...全文
951 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
changecode 2012-03-21
  • 打赏
  • 举报
回复
使用这个读取
InternetReadFile( hRequest, 字符缓冲区, 每次读取的最大字节数, &返回每次读取的实际字节数 );
InternetReadFile( hRequest, szRecvBuf, 1024, &dwNumberOfBytesRead );
loveking1234 2011-11-15
  • 打赏
  • 举报
回复
MSDN上说:
An application can use the same HTTP request handle in multiple calls to HttpSendRequest, but the application must read all data returned from the previous call before calling the function again.

这个发送请求最多好像就两个,多了就会等待,直到这两个有一个完成了(读取文件完成等等),才会进行下一个。如果这两个暂停了就不能连接了
职业炒股 2011-11-08
  • 打赏
  • 举报
回复
服务器端可以收到
BOOL hSendRequest = HttpSendRequest(hRequest, wpHeader.c_str(),wpHeader.length(),(LPVOID)(wpBody),wBodyLen );
检查看看返回值是1不?

不是的话应该是请求信息填充错误

网络下载。。
上传数据和下载数据最后不是用这个吧?
我的下载是用 InternetOpenUrl
然后直接读取下载信息流额。。。

sdbus 2011-11-07
  • 打赏
  • 举报
回复
问题是服务器端已收到数据,何以此函数返回不了呢.
哈利路亚1874 2011-11-05
  • 打赏
  • 举报
回复
这个函数本来就是阻塞函数,有时会导致阻塞,建议使用HttpSendRequestEx
Waistcoat23 2011-11-03
  • 打赏
  • 举报
回复
设置超时时间。

查看是否有防火墙等软件拦截了。
sdbus 2011-11-03
  • 打赏
  • 举报
回复
应该不是防火墙,因为不是很多一起使用时,是可以正常工作的.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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