gpt4 book ai didi

c# - 使用 c# http 客户端时,请求 header 必须仅包含 ASCII 字符吗?

转载 作者:行者123 更新时间:2023-12-03 16:32:21 25 4
gpt4 key购买 nike

我正在使用 HttpClient通过传递 header 进行 POST 调用,但在某个时间点我收到如下错误:

Request headers must contain only ASCII characters.
使用堆栈跟踪:
at System.Net.Http.HttpConnection.WriteStringAsync(String s)
at System.Net.Http.HttpConnection.WriteHeadersAsync(HttpHeaders headers, String cookiesFromContainer)
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithNtConnectionAuthAsync(HttpConnection connection, HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
这是我的代码:
public HttpWrapper(string endpoint, Func<IDictionary<string, string>> NewHeader)
{
_httpClient = new HttpClient();
_httpClient.BaseAddress = new Uri(endpoint);

if (NewHeader != null)
{
var headers = NewHeader();
foreach (var header in headers)
{
_httpClient.DefaultRequestHeaders.TryAddWithoutValidation(header.Key, header.Value);
}
}
}
我需要对 header.Value 做些什么吗?解决这个问题?我在网上阅读,所以看起来我需要在这里使用 Utf-8,但不确定如何正确使用?
更新
我今天得到了这样的 header 值,并且自 HttpUtility.HtmlEncode 以来它抛出了相同的异常没有做任何事情。另外我不确定这个字符是什么 <0x94> ?任何想法为什么会发生?
我也不确定
enter image description here

最佳答案

您可以尝试将 header 值编码为 HTML:

_httpClient.DefaultRequestHeaders.TryAddWithoutValidation(header.Key, HttpUtility.HtmlEncode(header.Value));
您的字符串 Ergänzendes 将是“ Erg&#228;nzendes”。

关于c# - 使用 c# http 客户端时,请求 header 必须仅包含 ASCII 字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64792110/

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