- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试通过 tutorial explaining how to access a WebAPI service在 VS2013 (.net 4.5.1) 中,我得到以下行的编译错误:
Product product = await response.Content.ReadAsAsync<Product>();
response = await client.PostAsJsonAsync("api/products", gizmo);
和
response = await client.PutAsJsonAsync(gizmoUrl, gizmo);
我引用了 System.Net.Http apparently包含编译失败的三个方法:ReadAsAsync()、PostAsJsonAsync() 和 PutAsJsonAsync()。尽管扩展类没有出现在程序集的 ObjectBrowser 中,所以我不确定我的版本是否正确(我的版本是 4.0.30319.18402)。
我使用的是最新的 nuGet Microsoft.AspNet.WebApi.Client 包 (5.1.2),所以我认为我拥有所需的一切。
谁能看出为什么代码无法编译或我遗漏了什么:
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace WebApiClient
{
class Program
{
static void Main()
{
RunAsync().Wait();
}
static async Task RunAsync()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:54122/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// HTTP GET
HttpResponseMessage response = await client.GetAsync("api/products/1");
if (response.IsSuccessStatusCode)
{
//***********
Product product = await response.Content.ReadAsAsync<Product>();
//***********
Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category);
}
// HTTP POST
var gizmo = new Product() { Name = "Gizmo", Price = 100, Category = "Widget" };
//***********
response = await client.PostAsJsonAsync("api/products", gizmo);
//***********
if (response.IsSuccessStatusCode)
{
Uri gizmoUrl = response.Headers.Location;
// HTTP PUT
gizmo.Price = 80; // Update price
//***********
response = await client.PutAsJsonAsync(gizmoUrl, gizmo);
//***********
// HTTP DELETE
response = await client.DeleteAsync(gizmoUrl);
}
}
}
}
}
谢谢。
最佳答案
原来我需要对 System.Net.Http.Formatting 的引用。
我的印象是这是 nuGet Microsoft.AspNet.WebApi.Client 包的一部分。
关于c# - 如何使用 HttpContentExtensions.ReadAsAsync<T>()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23362659/
在同一个类中对泛型方法进行方法调用时,出现以下异常: System.MissingMethodException:找不到方法:'System.Threading.Tasks.Task`1 System
我正在尝试通过 tutorial explaining how to access a WebAPI service在 VS2013 (.net 4.5.1) 中,我得到以下行的编译错误: Produ
我正在使用 WCF REST 初学者工具包中提供的非常棒的 HttpClient。我有以下针对 HelloTxt API 的方法: public UserValidateResponse Valida
我是一名优秀的程序员,十分优秀!