.netcore中的HttpClient会自动在header中添加一个空格

本文关键字:添加 空格 一个 header HttpClient 中的 netcore | 更新日期: 2023-09-27 18:14:03

我在。netcore中使用HTTPClient,但当我添加自定义接受标头时,我面临一个问题。

 var client = new HttpClient { Timeout = new TimeSpan(0, 5, 0)};
 client.DefaultRequestHeaders.Clear();
 client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/vnd.pagseguro.com.br.v3+json;charset=ISO-8859-1");

但是在这之后,我看到的是一个空格被自动添加,结果是" application/vnd.pagseguro.com.br.v3+json; charset=ISO-8859-1 "。这个空间给我带来了麻烦,因为服务器返回了一个错误。没有这个空间,它就能工作。

有任何方法来删除该空间在HttpClient头?传统的方法不起作用,比如trim,或者只是replace,一旦它在DefaultRequestHeaders内部,我就不能直接修改。

.netcore中的HttpClient会自动在header中添加一个空格

我能够通过使用。net Framework 4.5创建一个新的微服务来扭转这个问题。使用HttpWebRequest,报头不会在字符集和accept之间自动添加一个空格。

Thanks for the help =D

这是corefx的一个bug。

3年后仍然开放!

https://github.com/dotnet/corefx/issues/39260