ASP.NET MVC 웹 API HttpClient 소개
3742 단어 HttpClient
static void BasicMethod()
{
string url = "http://www.baidu.com";
HttpClient client = new HttpClient();
string content = client.GetStringAsync(url).Result;
Console.WriteLine(content);
}
이상 은 HttpClient 를 사용 하여 바 이 두 홈 페이지 를 요청 합 니 다.조작 하기에 도 편리 한 것 같 습 니 다.출력 요청 을 실행 한 결 과 는 다음 그림 과 같 습 니 다: 콘 솔 에서 출력 한 URL 요청 내용 입 니 다.HttpClient 는 위 에서 언급 한 GetStringasync()방법 외 에 도 다음 과 같은 Get 방법 을 제공 합 니 다.상세 한 것 은 MSDN:4 를 참고 하 십시오.사용자 정의 요청 헤드 를 사용자 정의 하려 면 HttpClient Handler Public class GitHttpClient Handler:HttpClient Handler 를 계승 해 야 합 니 다.
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
request.Headers.Referrer = new Uri("http://www.google.com/");
request.Headers.Add("UserAgent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727)");
Task<HttpResponseMessage> task = base.SendAsync(request, cancellationToken);
HttpResponseMessage response = task.Result;
MediaTypeHeaderValue contentType = response.Content.Headers.ContentType;
if (string.IsNullOrEmpty(contentType.CharSet))
{
contentType.CharSet = "GBK";
}
return task;
}
}
HttpClient Handler 는 흔히 볼 수 있 는 프 록 시 모드 입 니 다.HttpClient.GetStringasync()에 패 키 지 를 추가 하여 HttpClient 의 입 출력 을 차단 하여 사용자 정의 작업 을 실현 합 니 다.이런 방식 은 우리 가 MVC 에서 매우 흔히 볼 수 있 는 것 이 바로 MVC 의 필터 입 니 다.5.요청 내용 이 너무 길 면 HttpClient 에 속성 이 있 습 니 다.MaxResponse ContentBufferSize 는 해당 내용 을 읽 는 것 이 가장 큰 바이트 캐 시 수 이 고 기본 값 은 64K 입 니 다.페이지 내용 이 많 을 때 64K 를 초과 하면 이상 HttpRequestException 을 던 져 Get 에 실패 합 니 다.우 리 는 이 속성의 크기 를 인공 적 으로 설정 할 수 있다.
HttpClient client = new HttpClient() { MaxResponseContentBufferSize = 1024 * 1024 };
위 와 같은 방식 으로 처리 하면 된다.6.중국어 문제,중국어 문 제 는 항상 골 치 아 프 고 어 지 러 운 경우 가 많다.위 에서 언급 한 사용자 정의 요청 헤더 도 처리 할 수 있 습 니 다.여기에 코드 를 붙 여 참고 하 십시오.중국어 문 제 는 좀 복잡 합 니 다.구체 적 인 상황 에 따라 처리 해 야 합 니 다.
HttpResponseMessage response = task.Result;
MediaTypeHeaderValue contentType = response.Content.Headers.ContentType;
if(string.IsNullOrEmpty(contentType.CharSet))
{
contentType.CharSet = "GBK";
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HttpClient에서 웹 페이지를 캡처하는 두 가지 방법1. NodeFilter를 이용하여 웹 페이지를 분석한다. 1. Parser a를 생성한다. url을 통해 인터넷의 웹 페이지 b를 추출한다. 로컬 웹 파일을 추출하여 파일을 읽고 웹 파일을 문자열로 전환한다. 2....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.