使用winInet API接口httpSendRequest返回false,如何获取http错误信息?
大家好!最近遇到这个困难已经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抓取不到请求的信息。
--------------------编程问答-------------------- --------------------编程问答-------------------- winInet API没用过,但Socket API经常用
感觉HttpSendRequest,可能与Scoket的send调用一样,是异步执行的
(也就是调用后立即返回,可能是一个堵塞错误,需等待收到FD_WRITE消息再发送)
所以,你可能需要一个异步机制,来接收执行结果。
HTTP错误,我认为不应该在getLastError中获取,因为这属于应用型错误,Dll函数连接与应答本身并不存在错误。
Socket获取这类错误,很简单,直接检查Http头部信息就行。我想,你这种应该也有差不多的办法。 --------------------编程问答-------------------- 非常感谢 小吉的回答。
直接检查Http头部信息就行。
请问怎么检查Http头部信息就行? --------------------编程问答-------------------- --------------------编程问答-------------------- Http只是一个应用层的协议,报头是文本方式传输。
http响应第一行,即包含状态码,如:
HTTP/1.1 200 OK
HTTP/1.1 404 No Found
--------------------编程问答-------------------- 找我。腾讯OO:五五零七三五零 --------------------编程问答-------------------- 我也遇到类似问题,怎么木有大神来解决啊,顶起来啊。。。。。。。。。。 --------------------编程问答-------------------- hello 楼主, 有没有搞定? 教我一下。。。。。 --------------------编程问答--------------------
我也遇到这个情况了,返回Fasle。找到返回的头信息,503.504都遇到了
补充:VB , API