0
我想要一个通用函数,它将发送一个http请求&返回一个HttpResponseMessage。 这是我现在得到的。HttpClient检索Web API响应
public static HttpResponseMessage SendRequest(string actionUri, string baseAddress, HttpRequestMessage request)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseAddress);
HttpResponseMessage response = null;
foreach (var header in request.Headers)
{
client.DefaultRequestHeaders.Add(header.Key, header.Value);
}
if (request.Method == HttpMethod.Get)
{
response = client.GetAsync(actionUri).Result;
}
if (request.Method == HttpMethod.Post)
{
response = client.PostAsync(actionUri, request.Content).Result;
}
if (request.Method == HttpMethod.Put)
{
response = client.PutAsync(actionUri, request.Content).Result;
}
if (request.Method == HttpMethod.Delete)
{
response = client.DeleteAsync(actionUri).Result;
}
return response;
}
}
以上功能可以写成下面
public static HttpResponseMessage SendRequest1(string actionUri, string baseAddress, HttpRequestMessage request)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(baseAddress);
return client.SendAsync(request).Result;
}
}
是否有使用第二种方法与基于HTTP动词的显式调用的任何问题。对于一些请求,我收到GET请求的错误为“无法使用此动词类型发送内容主体”