gpt4 book ai didi

c# - HttpClient/HttpRequestMessage 接受头参数不能有空格

转载 作者:太空狗 更新时间:2023-10-30 01:14:12 31 4
gpt4 key购买 nike

我正在处理一个 API,该 API 需要我设置 header application/json;masked=false 才能隐藏一些信息。使用

设置标题时
var request = new HttpRequestMessage()
request.Headers.Add("Accept", "application/json;masked=false");

似乎在 ;masked 之间添加了一个空格,使输出 header application/json;掩码=假。不幸的是,我正在使用的这个 API 似乎只针对没有空格的文字 application/json;masked=false 检查。我知道标题有效,因为如果我在 postman 中没有空格的情况下使用它,它就可以正常工作。如果我使用在 postman 中生成的 C#,它不会。

有什么方法可以覆盖这种行为吗?

谢谢

最佳答案

好吧,通过一些挖掘,我们最终找到了这个问题的 github 问题:https://github.com/dotnet/corefx/issues/18449他们有一个使用反射的解决方法。

我采用了他们的解决方法来解决我正在做的事情:

        request.Headers.Add("Accept", contentType);
foreach (var v in request.Headers.Accept)
{
if (v.MediaType.Contains("application/json"))
{
var field = v.GetType().GetTypeInfo().BaseType.GetField("_mediaType", BindingFlags.NonPublic | BindingFlags.Instance);
field.SetValue(v, "application/json;masked=false");
v.Parameters.Clear();
}
}

关于c# - HttpClient/HttpRequestMessage 接受头参数不能有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194549/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com