많은 예제를 보았지만 모두 천천히 바이트 배열 또는 한 번에 256 문자로 읽습니다. 왜?
결과 Stream
값을 구문 분석 할 수있는 문자열로 변환하는 것은 좋지 않습니까?
답변
StreamReader
스트림 주변에 생성 한 다음 ReadToEnd
.
WebClient.DownloadString
대신 전화 를 고려해야 합니다.
답변
당신은 사용할 수 있습니다 StreamReader.ReadToEnd()
,
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
답변
@Heinzi가 언급했듯이 응답의 문자 집합을 사용해야합니다.
var encoding = response.CharacterSet == ""
? Encoding.UTF8
: Encoding.GetEncoding(response.CharacterSet);
using (var stream = response.GetResponseStream())
{
var reader = new StreamReader(stream, encoding);
var responseString = reader.ReadToEnd();
}
답변
Richard Schneider가 옳습니다. 아래 코드를 사용하여 utf8 문자 집합이 아닌 사이트에서 데이터를 가져 오면 잘못된 문자열이 표시됩니다.
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
String responseString = reader.ReadToEnd();
}
“나는 투표 할 수 없습니다. 그래서 이것을 썼습니다.
답변
당신은을 만들 수 있습니다 StreamReader
다음, 스트림 주위에 전화 StreamReader.ReadToEnd()
.
StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream());
var responseData = responseReader.ReadToEnd();