对于 WinHTTP,如果 HTTP header 有问题,WinHttpReceiveResponse 将返回 ERROR_WINHTTP_INVALID_SERVER_RESPONSE。
有没有办法获取返回的数据,尽管它格式不正确?
最佳答案
在这种情况下,直接的方法是绕过 WinHTTP API 并使用套接字进行“原始”读取,并尽最大努力尝试解释响应 header 。
如果可以找到匹配 content-length
的行,那么即使 header 无效,您至少也可以获取所有数据。要尝试这种方法,请在调试器中运行您的代码并查看 Web 服务器实际发送的内容,或者 try catch 数据包流并查看第一个数据包以找到原始字节。
显然,您的结果将取决于响应的实际问题。
关于http - 即使从 WinHTTP 格式错误,也能检索 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939416/