使用winInet API接口httpSendRequest返回false,如何获取http错误信息?

lew830715 2011-01-12 01:50:16
大家好!最近遇到这个困难已经3个月,在公司里寻求解决办法无效后,特来此麻烦大家。
先谢了!

请看问题:
在vb6.0中,通过winInet API的httpSendRequest发送请求后,总返回false的结果,想寻求http错误信息,通过getLastError得到的错误代码竟然是0。
其中代码类似:
Private Declare Function HttpSendRequest Lib "wininet.dll" _
Alias "HttpSendRequestA" _
(ByVal hHttpRequest As Long, _
ByVal sHeaders As String, _
ByVal lHeadersLength As Long, _
ByVal sOptional As String, _
ByVal lOptionalLength As Long) As Boolean

Dim bRet As Boolean

bRet = HttpSendRequest(hHttpOpenRequest, _
vbNullString, _
0, _
"CheckServer", _
11)


这个bRet 返回总是false.
请问如何获取错误信息?

比如我想得到的错误信息类似于:
http错误405
你正在查找的网页不存在或已经被删除。


备注:用httpwatch抓取不到请求的信息。

...全文
836 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
一叶知偢 2013-09-08
  • 打赏
  • 举报
回复


我也遇到这个情况了,返回Fasle。找到返回的头信息,503.504都遇到了
淮河神 2013-03-26
  • 打赏
  • 举报
回复
hello 楼主, 有没有搞定? 教我一下。。。。。
spalby 2011-11-18
  • 打赏
  • 举报
回复
我也遇到类似问题,怎么木有大神来解决啊,顶起来啊。。。。。。。。。。
vansoft 2011-01-25
  • 打赏
  • 举报
回复
找我。腾讯OO:五五零七三五零
lew830715 2011-01-13
  • 打赏
  • 举报
回复
非常感谢 小吉的回答。

直接检查Http头部信息就行。

请问怎么检查Http头部信息就行?
homezj 2011-01-13
  • 打赏
  • 举报
回复
Http只是一个应用层的协议,报头是文本方式传输。
http响应第一行,即包含状态码,如:
HTTP/1.1 200 OK
HTTP/1.1 404 No Found
homezj 2011-01-12
  • 打赏
  • 举报
回复
winInet API没用过,但Socket API经常用
感觉HttpSendRequest,可能与Scoket的send调用一样,是异步执行的
(也就是调用后立即返回,可能是一个堵塞错误,需等待收到FD_WRITE消息再发送)
所以,你可能需要一个异步机制,来接收执行结果。

HTTP错误,我认为不应该在getLastError中获取,因为这属于应用型错误,Dll函数连接与应答本身并不存在错误。
Socket获取这类错误,很简单,直接检查Http头部信息就行。我想,你这种应该也有差不多的办法。
yangxie5201314 2011-01-12
  • 打赏
  • 举报
回复

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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