http - 即使从 WinHTTP 格式错误,也能检索 HTTP 响应

标签 http winapi winhttp

对于 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/

相关文章:

windows - 如何使 WinHttpCrackUrl 在 64 位中工作

java - 未处理来自 AJAX 调用的 GET 或 POST 请求

c++ - 如果我使用相同的消息和相同的段落,为什么 wparam 会改变?

c++ - 如何从 rapidjson::Document 获取中文 wstring?

c++ - WinApi OpenProcess 错误 87

c++ - 如何在 C++ 上使用 WinHTTP 进行 HTTPS 调用(POST 请求)?

iphone - 如何使用 HTTP POST 通过 NSMutableURLRequest 将要点 (•) 发送到我的 PHP 页面?

Rust 支持 cookie 的 HTTP 客户端

javascript - 即使对象已正确实例化,JSONObject 也无法从现有对象中读取属性

c++ - WinHTTP 在 8 KiB 后停止下载