【发布时间】:2014-07-30 21:28:32
【问题描述】:
我的代码有什么问题吗?我不断收到此错误:
System.InvalidOperationException:请求消息已发送。不能多次发送相同的请求消息。
我的 HttpRequestMessage 在 Func 中,所以我认为每次传入 func() 时都会收到一个全新的请求。
public async Task<HttpResponseMessage> GetAsync(HttpRequestMessage request)
{
return await RequestAsync(() => request);
}
public async Task<HttpResponseMessage> RequestAsync(Func<HttpRequestMessage> func)
{
var response = await ProcessRequestAsync(func);
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
WaitForSomeTime();
response = await ProcessRequestAsync(func);
}
return response;
}
private async Task<HttpResponseMessage> ProcessRequestAsync(Func<HttpRequestMessage> func)
{
var client = new HttpClient();
var response = await client.SendAsync(func()).ConfigureAwait(false);
return response;
}
【问题讨论】:
-
你在func中作为参数传递了什么?
-
@I3arnon 我已经向来电者更新了我的问题。
-
那么我的猜测准确无误
标签: c# .net async-await dotnet-httpclient func