【发布时间】:2017-07-19 15:09:08
【问题描述】:
我正在处理一个 API,它要求我设置标头 application/json;masked=false 以取消屏蔽某些信息。使用
var request = new HttpRequestMessage()
request.Headers.Add("Accept", "application/json;masked=false");
看起来好像在; 和masked 之间添加了一个空格,使输出标头application/json; masked=false。不幸的是,我正在使用的这个 API 似乎只检查文字 application/json;masked=false 而没有空格。我知道标题有效,因为如果我在邮递员中没有空格的情况下使用它,它就可以正常工作。如果我使用在邮递员中生成的一个 C#,它不会。
有没有办法覆盖这种行为?
谢谢
【问题讨论】:
-
查看referencesource.microsoft.com/#System/net/System/Net/… 的 WebRequest 源。至于修复,它看起来不太好,因为所有标头都经过了一些“整理”,可能是因为它在某个 RFC 中。如果你能找出你所使用的 API 在 RFC 中的错误之处,那么告诉他们他们有一个不符合标准的实现可能会更容易,他们应该修复它。
-
仅供参考,这在 Framework 4.5 中是相同的。不确定最终是否可以轻松修复(当您阅读 w3c.org 上的页面时,您知道情况很糟糕)。
-
@Neil 感谢您提供源链接!老实说,我忘记了这一点。在这一点上,我认为您可能是对的,我们需要联系他们并告诉他们他们的 API 不合格。
-
@DaveBecker 是的,非常棒,哈哈。感谢您在 Framework 中对其进行测试!
标签: c# .net-core dotnet-httpclient