C# 从任务获取HttpResponseMessage<;HttpResponseMessage>;
在使用语句的HttpClient内部,我需要从某个地方打开HttpResponseMessageC# 从任务获取HttpResponseMessage<;HttpResponseMessage>;,c#,asp.net,.net,asp.net-web-api,C#,Asp.net,.net,Asp.net Web Api,在使用语句的HttpClient内部,我需要从某个地方打开HttpResponseMessage using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authUser); Task<HttpResponseMessage> m = client.GetAsy
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authUser);
Task<HttpResponseMessage> m = client.GetAsync(url);
// HttpResponseMessage msg = ???
task.Wait();
return task.Result;
}
使用(HttpClient=new HttpClient())
{
client.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“基本”,authUser);
Task m=client.GetAsync(url);
//HttpResponseMessage消息=???
task.Wait();
返回任务。结果;
}
我的问题是:如何从这条线路获取HttpResponseMessage
Task<HttpResponseMessage> m = client.GetAsync(url);
Task m=client.GetAsync(url);
您应该执行以下任务:
HttpResponseMessage m = await client.GetAsync(url);
为此,需要将调用方法标记为
async
,以获取HttpResponseMessage,您应该使用Task.Result属性。
以下是您的代码(稍作修改),其中包含从Task获得的HttpResponseMessage:
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authUser);
Task<HttpResponseMessage> task = client.GetAsync(uri);
**HttpResponseMessage msg = task.Result;**
task.Wait();
return task.Result;
}
使用(HttpClient=new HttpClient())
{
client.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“基本”,authUser);
Task=client.GetAsync(uri);
**HttpResponseMessage msg=task.Result**
task.Wait();
返回任务。结果;
}
这通常是一个非常糟糕的主意: