当前位置:编程学习 > VB >>

使用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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,