первый HttpWebResponse.GetResponseStream () не работает, второй работает? - PullRequest
1 голос
/ 13 марта 2011

Я создаю программу для автоматического входа на веб-сайт с использованием аутентификации форм.Когда я вызываю свой метод для подключения к веб-сайту, он возвращает пустой текст документа.Однако, если я вызываю тот же метод во второй раз, он работает отлично.Вот мой код:

//perform authentication and stores the session in the cookiecontainer
private void loginToSite()
{
// prepare the web page we will be asking for
request = (HttpWebRequest)
WebRequest.Create(@"http://diary.com/notes/my_journal");
request.KeepAlive = true;

//========================================
//start of forms authentication parameters
//========================================
string authInfo = username + ":" + password;
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers["Authorization"] = "Basic " + authInfo;
//========================================
//end of forms authentication parameters
//========================================

request.ContentType = "text/html";

request.Method = "GET";
request.AllowAutoRedirect = true;
request.Referer = @"http://diary.com/";
request.CookieContainer = new CookieContainer();

// execute the request
HttpWebResponse response = (HttpWebResponse)
    request.GetResponse();

// we will read data via the response stream
Stream resStream = response.GetResponseStream();

container = request.CookieContainer;

//assign the http content to myWB for manipulation
    //myWB is a WebBrowser object that have been declared
myWB.DocumentStream = resStream;

//prevent script errors from popping up
myWB.ScriptErrorsSuppressed = true;

    MessageBox.Show(myWB.DocumentText);
}
...