相关疑难解决方法(0)

HttpWebrequest 中 HTTP 标头的严格排序

尽管 RFC 声明唯一命名的标头的顺序无关紧要,但我发送此请求的网站确实对标头的顺序进行了检查。

这有效:

GET https://www.thewebsite.com HTTP/1.1
Host: www.thewebsite.com
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 etc
Run Code Online (Sandbox Code Playgroud)

这不起作用:

GET https://www.thewebsite.com HTTP/1.1
Accept: */*
User-Agent: Mozilla/5.0 etc
Host: www.thewebsite.com
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)

默认情况下HttpWebRequest似乎将HostConnection标题放在最后,在空行之前,而不是在 url 之后。

有什么方法(HttpWebRequest甚至在 Nuget 中使用 fork或其他库)来指定HttpWebRequest.

如果可能的话,我宁愿不开始沿着实现代理的路线对它们进行排序或不得不使用TcpClient.

我很感激这方面的任何提示。

更新:随着 Fiddler 的运行,HttpWebrequest 中的标头顺序可以在 CustomRules.cs 中重新排列。尽管如此,仍然没有更接近没有代理的解决方案。

c# httpclient httpwebrequest http-headers

7
推荐指数
2
解决办法
573
查看次数

标签 统计

c# ×1

http-headers ×1

httpclient ×1

httpwebrequest ×1