HttpOpenRequest 和接受 header
HttpOpenRequest and Accept header
HttpOpenRequest
接受一个非常奇怪的格式的 http accept header。可以忽略该参数并添加一个正常的 accept header with HttpAddRequestHeaders
later ?
hfile = HttpOpenRequest(hLastConnection, 'GET', '/path', NULL, NULL, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION, 0);
HttpAddRequestHeaders(hfile,'Accept: foobar', 14, HTTP_ADDREQ_FLAG_REPLACE or HTTP_ADDREQ_FLAG_ADD);
它确实有效(在 WINE 中),但似乎没有记录。
同样,content-type和referer的情况如何?
关于 HttpOpenRequest()
如何接受 Accept
值没有什么奇怪。它只是一个 null-terminated 字符串数组。 Accept
header 允许多种类型。 HttpOpenRequest()
将连接值并为您格式化 Accept
header。使用 HttpAddRequestHeaders()
,您必须手动执行此操作。但是无论你使用 HttpOpenRequest()
还是 HttpAddRequestHeaders()
都没有区别,因为 Accept
header 根本不会影响客户端,所以无论你如何将它放入要求。它仅在准备响应时影响服务器。
与Referer
相同,它不影响客户端,只影响服务器,因此您可以根据需要将其添加到请求中。尽管 HttpOpenRequest()
对 Referer
值有一个很好的简单参数,所以你应该使用它。
另一方面,Content-Type
只能设置为HttpAddRequestHeaders()
。但是为 GET
请求指定 Content-Type
没有意义,因为请求中没有负载。 Content-Type
仅适用于带有负载的请求,例如 POST
和 PUT
.
HttpOpenRequest
接受一个非常奇怪的格式的 http accept header。可以忽略该参数并添加一个正常的 accept header with HttpAddRequestHeaders
later ?
hfile = HttpOpenRequest(hLastConnection, 'GET', '/path', NULL, NULL, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION, 0);
HttpAddRequestHeaders(hfile,'Accept: foobar', 14, HTTP_ADDREQ_FLAG_REPLACE or HTTP_ADDREQ_FLAG_ADD);
它确实有效(在 WINE 中),但似乎没有记录。
同样,content-type和referer的情况如何?
关于 HttpOpenRequest()
如何接受 Accept
值没有什么奇怪。它只是一个 null-terminated 字符串数组。 Accept
header 允许多种类型。 HttpOpenRequest()
将连接值并为您格式化 Accept
header。使用 HttpAddRequestHeaders()
,您必须手动执行此操作。但是无论你使用 HttpOpenRequest()
还是 HttpAddRequestHeaders()
都没有区别,因为 Accept
header 根本不会影响客户端,所以无论你如何将它放入要求。它仅在准备响应时影响服务器。
与Referer
相同,它不影响客户端,只影响服务器,因此您可以根据需要将其添加到请求中。尽管 HttpOpenRequest()
对 Referer
值有一个很好的简单参数,所以你应该使用它。
Content-Type
只能设置为HttpAddRequestHeaders()
。但是为 GET
请求指定 Content-Type
没有意义,因为请求中没有负载。 Content-Type
仅适用于带有负载的请求,例如 POST
和 PUT
.