응답에서 텍스트 읽기
HttpWebRequest request = WebRequest.Create("http://google.com") as HttpWebRequest;
request.Accept = "application/xrds+xml";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
WebHeaderCollection header = response.Headers;
여기서 Google은 텍스트를 반환합니다. 읽는 방법?
당신 "application/xrds+xml"이 나에게 문제를주고 있었다. 나는 0의 Content-Length (응답 없음)를 받았다.
이를 제거한 후을 사용하여 응답에 액세스 할 수 있습니다 response.GetResponseStream().
HttpWebRequest request = WebRequest.Create("http://google.com") as HttpWebRequest;
//request.Accept = "application/xrds+xml";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
WebHeaderCollection header = response.Headers;
var encoding = ASCIIEncoding.ASCII;
using (var reader = new System.IO.StreamReader(response.GetResponseStream(), encoding))
{
string responseText = reader.ReadToEnd();
}
수락 된 답변 은 WebResponse텍스트를 올바르게 처리 하거나 디코딩 하지 않습니다 . 또한 .NET 4.5에서이 작업을 수행하는 새로운 방법이 있습니다.
HTTP GET을 수행하고 응답 텍스트를 읽으려면 다음을 수행하십시오.
.NET 1.1 ‒ 4.0
public static string GetResponseText(string address)
{
var request = (HttpWebRequest)WebRequest.Create(address);
using (var response = (HttpWebResponse)request.GetResponse())
{
var encoding = Encoding.GetEncoding(response.CharacterSet);
using (var responseStream = response.GetResponseStream())
using (var reader = new StreamReader(responseStream, encoding))
return reader.ReadToEnd();
}
}
.NET 4.5
private static readonly HttpClient httpClient = new HttpClient();
public static async Task<string> GetResponseText(string address)
{
return await httpClient.GetStringAsync(address);
}
난 그냥 나 자신 것을 시도했다, 그것은 나에게 200 OK 응답,하지만 내용을 주었다 - 컨텐츠 길이가 0 당신이 있습니까되었다 확실히 그것은 당신에게 컨텐츠를주고? 어쨌든, 나는 당신이 정말로 콘텐츠를 가지고 있다고 가정 할 것입니다.
실제 텍스트를 다시 가져 오는 것은 인코딩을 아는 데 의존하며 까다로울 수 있습니다. Content-Type 헤더에 있어야하지만 파싱해야합니다.
그러나 이것이 실제로 XML 인 경우 (예 : " http://google.com/xrds/xrds.xml ") 훨씬 쉽습니다. 예를 들어 LINQ to XML을 통해 XML을 메모리에로드하기 만하면됩니다. 예를 들면 :
using System;
using System.IO;
using System.Net;
using System.Xml.Linq;
using System.Web;
class Test
{
static void Main()
{
string url = "http://google.com/xrds/xrds.xml";
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
XDocument doc;
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
doc = XDocument.Load(stream);
}
}
// Now do whatever you want with doc here
Console.WriteLine(doc);
}
}
내용은 XML, (그것의 여부 XML 객체 모델로 결과를 얻는 경우 XDocument, XmlDocument또는이 XmlReader)되는 가능성이 일반 텍스트를하는 것보다 더 가치가있을 수 있습니다.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.google.com");
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string strResponse = reader.ReadToEnd();
이 문서에서는 HttpWebResponse 개체 사용에 대한 좋은 개요를 제공합니다. HttpWebResponse를 사용하는 방법
아래 관련 비트 :
HttpWebResponse webresponse;
webresponse = (HttpWebResponse)webrequest.GetResponse();
Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream = new StreamReader(webresponse.GetResponseStream(),enc);
string Response = loResponseStream.ReadToEnd();
loResponseStream.Close();
webresponse.Close();
return Response;
response.GetResponseStream()응답 스트림을 반환하는 데 사용해야합니다. 그리고 잊지 마세요 와 객체.closeStreamResponse
참고URL : https://stackoverflow.com/questions/3273205/read-text-from-response
'Nice programing' 카테고리의 다른 글
| 3 개 이상의 항목이있는 BottomNavigationView : 탭 제목이 숨겨져 있습니다. (0) | 2020.11.22 |
|---|---|
| 파이썬에서 변수 이름을 어떻게 인쇄 할 수 있습니까? (0) | 2020.11.22 |
| 인 텐트를 사용하여 해시 맵 값을 다른 활동에 보내는 방법 (0) | 2020.11.22 |
| 두 지리적 위치 사이의 거리 계산 (0) | 2020.11.22 |
| Xcode-구성 : 오류 : $ PATH에 허용 가능한 C 컴파일러가 없습니다. (0) | 2020.11.22 |