Webページの読み込みに問題があります。ページの最初の部分だけが表示されているため、どういうわけか、私が得た応答は完全ではないようです。ReadToEndを使用して応答ストリームを書き出す場合、閲覧しようとしているWebページに関係なく、文字列には約700文字しか表示されません。以下のコードを参照してください。
public class GetServerResponse
{
private Uri url;
public GetServerResponse(Uri uri)
{
this.url = uri;
HttpWebRequest h = (HttpWebRequest)WebRequest.Create(this.url);
StartRequest(this.url);
}
private void StartRequest(Uri url)
{
HttpWebRequest internalRequest = (HttpWebRequest)WebRequest.Create(url);
GetServerResponseState responseState = new GetServerResponseState();
responseState.AsyncRequest = internalRequest;
internalRequest.BeginGetResponse(new AsyncCallback(HandleServerResponse), responseState);
}
private void HandleServerResponse(IAsyncResult asyncResult)
{
GetServerResponseState responseState = (GetServerResponseState)asyncResult.AsyncState;
HttpWebRequest internalRequest = (HttpWebRequest)responseState.AsyncRequest;
internalRequest.AllowAutoRedirect = false;
responseState.AsyncResponse = (HttpWebResponse)internalRequest.EndGetResponse(asyncResult);
Stream streamResult;
try
{
streamResult = responseState.AsyncResponse.GetResponseStream();
using (StreamReader reader = new StreamReader(streamResult, Encoding.UTF8))
{
System.Diagnostics.Debug.WriteLine(reader.ReadToEnd());
}
}
catch (FormatException)
{
return;
}
}
}
public class GetServerResponseState
{
public HttpWebRequest AsyncRequest { get; set; }
public HttpWebResponse AsyncResponse { get; set; }
}