几天来,我一直在尝试使用HttpWebRequest与服务器建立通信。我注意到服务器不符合RFC中http的协议规范。因此,我在App.config中设置了tru:
<httpWebRequest useUnsafeHeaderParsing = "true" />
完成此操作后,我收到了 400 的答案。 我注意到我可以使用curl软件进行通信。 我在代码中设置了相同的标题 - 没有结果。
最后,我注意到主机头的顺序是个问题。如果主机标头位于 POST / HTTP / 1.1 之后,则服务器响应正常,但如果它位于所有标头的末尾,那么我将获得代码 400
没有工作:
POST / HTTP / 1.1
User-Agent: curl / 7.52.1
Accept: * / *
Content-Type: text / xml; charset = ISO-8859-1
SOAPAction: ...
Host: 10.10.10.147
有效:
POST / HTTP / 1.1
Host: 10.10.10.147
User-Agent: curl / 7.52.1
Accept: * / *
Content-Type: text / xml; charset = ISO-8859-1
SOAPAction: ...
是否有可能使用HttpWebRequest更改标题的顺序?