C# &引用;违反协议“;在URI中使用特定语言代码时

C# &引用;违反协议“;在URI中使用特定语言代码时,c#,rest,get,dotnet-httpclient,C#,Rest,Get,Dotnet Httpclient,我们有一个RESTAPI,它将第三方专有语言代码(采用en-US格式)映射到我们自己的系统识别的语言代码中。restapi的路由是 ~/v1/languages/mappings/{foreignLanguageCode} [GET] 我们接收这些第三方语言代码,并使用System.Net.Http.HttpClient实例将它们发送到我们自己的API 这对于许多语言代码都非常有效,但是当传递时,请求甚至没有被发送,HttpClient对象抛出异常 发送请求时出错 内部异常-aWebExcep

我们有一个RESTAPI,它将第三方专有语言代码(采用
en-US
格式)映射到我们自己的系统识别的语言代码中。restapi的路由是

~/v1/languages/mappings/{foreignLanguageCode} [GET]
我们接收这些第三方语言代码,并使用
System.Net.Http.HttpClient
实例将它们发送到我们自己的API

这对于许多语言代码都非常有效,但是当传递时,请求甚至没有被发送,HttpClient对象抛出异常

发送请求时出错

内部异常-a
WebException
-表示

服务器违反了协议。区段=响应STATUSLINE

例外情况还包含

资料来源:“系统”
状态:服务器协议冲突
StackTrace:
在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)中
在System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)上

此时的URI是

https://www.example.com/api/v1/languages/mappings/ko-US/
我已经试过了,有没有尾随斜杠:没有区别。我们可以向同一API发送许多其他语言代码,而不会出现任何问题

有人能解释为什么这个特定的URI会导致这个异常吗?

回答我自己的问题

我无法解释原因,但这解决了问题:

myHttpClient.DefaultRequestHeaders.ConnectionClose = true;
我在发送请求之前添加了这一点,因此工作代码如下所示:

httpClient.DefaultRequestHeaders.ConnectionClose = true;
var response = await httpClient.GetAsync(uri).ConfigureAwait(false);
回答我自己的问题

我无法解释原因,但这解决了问题:

myHttpClient.DefaultRequestHeaders.ConnectionClose = true;
我在发送请求之前添加了这一点,因此工作代码如下所示:

httpClient.DefaultRequestHeaders.ConnectionClose = true;
var response = await httpClient.GetAsync(uri).ConfigureAwait(false);

服务器是否崩溃或发出任何诊断?你可能需要嗅探电线以获得足够的线索,这是怎么回事;没有任何线索可供嗅探。>服务器违反了协议。客户端可能在撒谎,因为它确实存在某种内部错误,但知道这一点的唯一方法是调试它。我刚刚与Fiddler进行了检查,没有向预期的URI发送任何请求-不仅是该特定路径,还有服务器。服务器是否崩溃或发出任何诊断?你可能需要嗅探电线以获得足够的线索,这是怎么回事;网络上没有任何东西可以嗅探。>服务器违反了协议。客户端可能是在撒谎,因为它确实存在某种内部错误,但知道这一点的唯一方法是对其进行调试。我刚刚与Fiddler进行了检查,没有向预期的URI发送任何请求-不仅是该特定路径,还有服务器。