메서드 HttpClient
가 있어야한다는 새로운 객체 (새로운 웹 API의 일부)를 사용하여 웹에서 많은 예제를 볼 수 있습니다 HttpContent.ReadAsAsync<T>
. 그러나 MSDN 은이 방법에 대해 언급하지 않았으며 IntelliSense도 찾지 못했습니다.
어디로 갔고 어떻게 해결합니까?
답변
확장 방법 인 것처럼 보입니다 (System.Net.Http.Formatting에서).
최신 정보:
PM> 설치 패키지 Microsoft.AspNet.WebApi.Client
System.Net.Http.Formatting NuGet 패키지 페이지 에 따르면 , System.Net.Http.Formatting
패키지는 이제 레거시이며 대신 NuGet에서Microsoft.AspNet.WebApi.Client
사용 가능한 패키지 에서 찾을 수 있습니다 .
답변
나는 같은 문제가 있으므로 JSON 문자열을 가져 와서 클래스에 직렬화 해제합니다.
HttpResponseMessage response = await client.GetAsync("Products");
//get data as Json string
string data = await response.Content.ReadAsStringAsync();
//use JavaScriptSerializer from System.Web.Script.Serialization
JavaScriptSerializer JSserializer = new JavaScriptSerializer();
//deserialize to your class
products = JSserializer.Deserialize<List<Product>>(data);
답변
이미 사용 Newtonsoft.Json
중이고 설치하지 않으려 는 경우 Microsoft.AspNet.WebApi.Client
:
var myInstance = JsonConvert.DeserializeObject<MyClass>(
await response.Content.ReadAsStringAsync());
답변
확장 방법을 작성할 수 있습니다.
public static async Task<Tout> ReadAsAsync<Tout>(this System.Net.Http.HttpContent content) {
return Newtonsoft.Json.JsonConvert.DeserializeObject<Tout>(await content.ReadAsStringAsync());
}
답변
프로젝트에서 마우스 오른쪽 버튼을 클릭하면 NuGet 패키지 관리에서 Microsoft.AspNet.WebApi.Client 설치를 검색하고 확장 방법에 액세스 할 수 있습니다.
답변
NuGet Microsoft.AspNet.WebApi.Client를 설치 한 후 사용할 수없는 경우이 방법을 몇 번 누른 후 여러 가지 제안을 따랐다면 솔루션의 패키지 폴더에서 수동으로 참조를 추가하십시오.
\Microsoft.AspNet.WebApi.Client.5.2.6\lib\net45\System.Net.Http.Formatting.dll
그리고 System.Net.Http.Formatting.dll에 대한 이전 참조를 추가하는 함정에 빠지지 마십시오.