当我将请求发布到其余的api时,程序将崩溃并且线程将被中止。 请指教。
public async Task<TResponse> Post<TRequest, TResponse>(string method, TRequest request)
{
JsonMediaTypeFormatter jsonFormat = new JsonMediaTypeFormatter
{
SerializerSettings =
{
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore,
PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None
}
};
var response = await _httpClient.PostAsync(_baseUrl + method, request, jsonFormat);
var finalResponse = await response.Content.ReadAsAsync<TResponse>();
return finalResponse;
}
请注意,不会向服务器发送任何请求。顺便说一句_httpClient将被定义如下
_httpClient =
new HttpClient(new HttpClientHandler
{
AutomaticDecompression =
System.Net.DecompressionMethods.GZip | System.Net.DecompressionMethods.Deflate
})
{Timeout = TimeSpan.FromSeconds(50)};
_httpClient.DefaultRequestHeaders.Add("Authorization", "apikey " + apiKey);
答案 0 :(得分:3)
我自己已经弄明白了,事实证明row_layout.xml
会调用一些取消当前线程的方法。所以我删除了PostAsync
关键字并获得最终结果。
await
答案 1 :(得分:0)
我们还收到了“线程被中止”错误。
对我们来说,我们对 R
的调用来自单元测试。
一旦我们将单元测试方法签名更改为 httpClient.PostAsync
,并将调用更改为 async
,await
就成功了。
PostAsync