C# netcore中的HttpClient正在标头中自动添加一个空格

C# netcore中的HttpClient正在标头中自动添加一个空格,c#,http-headers,httpclient,space,.net-core,C#,Http Headers,Httpclient,Space,.net Core,我正在.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+j

我正在.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
,或者在
DefaultRequestHeaders
中插入
replace
,我无法直接修改

我用.NETFramework4.5创建了一个新的微服务,从而扭转了这个问题。使用HttpWebRequest,标头不会在字符集和accept之间自动添加空格


感谢您的帮助=D

这是corefx中的一个bug

3年后仍然开放


我不这么认为。不过听起来很奇怪。服务器应该接受它。根据标准,空间是允许的。我也这么认为。但遗憾的是,UOL服务器不接受空间限制。我还考了邮递员。但感谢帕特里克的评论,UOL是什么…?这是一个巴西利亚支付解决方案。我已经和他们取得了联系。但我仍在等待答案。支付提供商的全称为PagSeguro。对于国际支付,我使用贝宝。但对于巴西,paypal不支持直接信用卡支付。如果使用HttpRequestMessage.Headers.TryAddWithoutValidation为每个请求添加标头,会怎么样?