는 HttpContent입니다.Async로 읽으시겠습니까?
나는 웹에서 새로운 것을 사용하는 수많은 예를 봅니다.HttpClient
새로운 웹 API의 일부로서 존재해야 하는 객체HttpContent.ReadAsAsync<T>
방법.그러나 MSDN은 이 방법을 언급하지 않으며 IntelliSense도 이 방법을 찾지 못합니다.
어디로 갔으며 어떻게 해결해야 합니까?
(시스템에서) 확장 방법인 것 같습니다.넷. http.서식 지정):
업데이트:
PM > 설치-패키지 Microsoft.AsNet.WebApi.고객
시스템에 따라.넷. http.NuGet 패키지 페이지 포맷,System.Net.Http.Formatting
패키는이대다찾서수을있다습니에음신에서 수 .Microsoft.AspNet.WebApi.Client
패키지는 NuGet에서 사용할 수 있습니다.
저도 같은 문제가 있어서 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());
업데이트2021년판: 에서된 것 .에서 메소드가 제거된 것 같습니다.NET5를 할 수 . 또는 다음을 사용할 수 있습니다.ReadFromJsonAsync<>()
System.Net.Http.Json.HttpContentJsonExtensions
그것은 목적을 해결합니다.
확장 방법을 쓸 수 있습니다.
public static async Task<Tout> ReadAsAsync<Tout>(this System.Net.Http.HttpContent content) {
return Newtonsoft.Json.JsonConvert.DeserializeObject<Tout>(await content.ReadAsStringAsync());
}
프로젝트에서 마우스 오른쪽 버튼을 클릭하면 Microsoft에서 NuGet 패키지 관리를 검색할 수 있습니다.AsNet.WebApi.클라이언트에서 설치하면 확장 방법에 액세스할 수 있습니다.
NuGet Microsoft를 설치한 후에도 사용할 수 없는 경우 이를 몇 번 누르고 여러 가지 제안을 따릅니다.AsNet.WebApi.클라이언트가 솔루션의 패키지 폴더에서 다음 위치에 참조를 수동으로 추가합니다.
\Microsoft.AspNet.WebApi.Client.5.2.6\lib\net45\System.Net.Http.Formatting.dll
그리고 시스템에 오래된 참조를 추가하는 함정에 빠지지 마십시오.넷. http.Formating.dll NuGet
저도 같은 문제가 있었지만, 이 스레드의 답변은 제가 문제를 해결하는 데 완전히 도움이 되지 않았습니다.이러한 이유로, 저는 제 연구 결과를 이 게시물에 쓰기로 결정했습니다.이 문제를 해결하려면 다음 단계를 수행합니다.
- Microsoft를 추가합니다.AsNet.WebApi.NuGet을 사용하여 프로젝트로 클라이언트 패키지.ASP.NET 솔루션 내부에서 다음으로 이동하여 패키지 관리자 콘솔을 엽니다.
Tools > NuGet Package Manager > Package Manager Console
에서 Visual Studio IDE를 합니다.Microsoft.AspNet.WebApi.Client
해결책으로 포장합니다.
Install-Package Microsoft.AspNet.WebApi.Client -Version 5.2.7
- 설치 후 확장 DLL이 시스템에 있는지 확인합니다.
System.Net.Http.Formatting.dll
첫 번째 단계의 결과로 아래에 표시된 디렉토리에 파일이 있어야 합니다.
{root-solution-directory}\packages\Microsoft.AspNet.WebApi.Client.{package-version}\lib\net45\
관련 프로젝트에 참조를 수동으로 추가합니다.솔루션 내 ASP.NET 프로젝트의 "References" 섹션을 마우스 오른쪽 버튼으로 클릭하고 "Add References"를 클릭합니다.섹션파일 이후로
System.Net.Http.Formatting.dll
확장입니다. 다른 항목처럼 직접 검색할 때 나열되지 않습니다.Microsoft.AspNet.WebApi.Client
꾸러미따라서 DLL 파일을 수동으로 추가하려면 "찾아보기"를 클릭합니다.버튼을 클릭합니다.다음을 선택합니다.System.Net.Http.Formatting.dll
DLL 파일을 프로젝트에 포함하려면 두 번째 단계에 표시된 디렉토리에 파일을 저장하고 확인란을 선택합니다.포함
System.Net.Http
프로젝트에서 이 DLL에서 제공하는 기능을 사용하기 위한 프로젝트 네임스페이스.using System.Net.Http.Formatting;
선언은 내에서 사용할 수 있습니다.HttpContentExtensions
정적 계급
using System.Net.Http;
선택 사항:시스템 중 하나를 설치하면 유사한 솔루션을 얻을 수 있습니다.넷. http.포맷.확장 또는 WebApiDoodle.넷. http.패키지를 포맷하고 위의 단계를 따릅니다.
언급URL : https://stackoverflow.com/questions/10399324/where-is-httpcontent-readasasync
'source' 카테고리의 다른 글
Vuex: 상수 대신 돌연변이/작용의 함수 이름을 사용할 수 있습니까? (0) | 2023.06.15 |
---|---|
두 오라클 인스턴스 간에 DB 링크를 만드는 방법 (0) | 2023.06.15 |
numpy 배열 초기화 (0) | 2023.06.15 |
Nodejs vs SignalR: 서버 측 Javascript가 필요한 이유는 무엇입니까? (0) | 2023.06.15 |
Django 사용자 지정 양식 매개 변수를 양식 세트로 전달 (0) | 2023.06.15 |