替代ReadAsAsync方法HttpContent
我使用Microsoft.AspNet.WebApi.Client我ASP.MVC 5项目消费REST服务。我遵循this教程来使用HttpClient。由于ReadAsAsync
方法在HttpContent中不再可用,因此代码未编译。挖了一下后,我才知道这是一个在System.Net.Http.Formatting.dll
中定义的扩展方法。我发现了一个相同的DLL here Nuget包,但该软件包已过时,我无法安装它。我也想根据this帖子在Program Files文件夹中搜索该DLL,但我无法得到它。任何想法如何使ReadAsAsync
工作?任何帮助极大appreiciated。谢谢。替代ReadAsAsync方法HttpContent
你有什么需要做的是添加新的参考System.Net.HttpClient;
和System.Net.HttpClient.Formating;
。
这是我的HttpClient示例代码:
下面的代码是用来获取使用HttpClient的萨巴证书。
using System.Net.Http;
using System.Net.Http.Headers;
using GoSaba.Models.Saba;
namespace GoSaba.Controllers.Saba
{
class LoginController
{
//HTTP GET: Saba/api/login
public async Task<string> GetCertificate(string host, string user, string password, string site)
{
StringBuilder getCertificate = new StringBuilder();
if(!string.IsNullOrEmpty(host))
{
using(var httpClient = new HttpClient())
{
httpClient.BaseAddress = new Uri(string.Format("http://{0}/", host));
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.DefaultRequestHeaders.Add("user", user);
httpClient.DefaultRequestHeaders.Add("password", password);
httpClient.DefaultRequestHeaders.Add("site", site);
HttpResponseMessage httpResponse = await httpClient.GetAsync("Saba/api/login");
if(httpResponse.IsSuccessStatusCode)
{
LoginModel.GetCertificate saba = await httpResponse.Content.ReadAsAsync<LoginModel.GetCertificate>();//LoginModel.GetCertificate is model.
getCertificate.Append(saba.certificate);
}
}
}
return getCertificate.ToString();
}
}
}
您可以在如何使用HttpClient中使用此参考。
我的计算机上没有System.Net.Http.Formatting,哪个.Net版本安装它? – user3285954 2016-03-22 18:36:06
它在我的工作电脑上,但不在我的家用电脑上。两者都安装了.NET 4.6.1。 – user3285954 2016-03-22 18:48:20
添加引用,包括'System.Net.Http;'和'System.Net.Http.Formating;'版本4.0.0.0 – 2014-10-29 07:08:21
我在哪里可以得到该DLL的?任何想法?我试着通过Packge Manger控制台安装它,但是它显示'无法找到包'System.Net.Http.Formatting'的版本'4.0.0.0'。我猜是不赞成的。 – 2014-10-29 07:12:43
你已经在你的GAC里有'Http.Formatting'。 – 2014-10-29 07:16:51