2011-12-10 11 views
1

私はウェブサイトにログインし、ウェブページのコンテンツ(HTMLコード)を取得するウィンドウフォームアプリケーションを持っています。httpwebrequest、httpwebresponse not quite working

Windowsフォームアプリケーションから自分のコードを変更して、.aspxページで動作させるようにしましたが、問題があります。何も下の文字列(thepage)に保存されません取得します。

private void button1_Click(object sender, EventArgs e) 
     { 
      string postData = "bla bla bla..."; 
      CookieContainer tempCookies = new CookieContainer(); 
      UTF8Encoding encoding = new UTF8Encoding(); 
      byte[] byteData = encoding.GetBytes(postData); 

     HttpWebRequest postReq = (HttpWebRequest)WebRequest.Create("http://bla bla bla...php"); 
     postReq.Method = "POST"; 
     postReq.KeepAlive = true; 
     postReq.CookieContainer = tempCookies; 
     postReq.ContentType = "application/x-www-form-urlencoded"; 
     postReq.Referer = "http://bla bla bla...php"; 
     postReq.UserAgent = "Opera/9.80 (Windows NT 6.1; U; en-GB) Presto/2.9.168 Version/11.52"; 
     postReq.ContentLength = byteData.Length; 

     Stream postreqstream = postReq.GetRequestStream(); 
     postreqstream.Write(byteData, 0, byteData.Length); 
     postreqstream.Close(); 
     HttpWebResponse postresponse = default(HttpWebResponse); 

     postresponse = (HttpWebResponse)postReq.GetResponse(); 
     tempCookies.Add(postresponse.Cookies); 
     logincookie = tempCookies; 
     StreamReader postreqreader = new StreamReader(postresponse.GetResponseStream()); 

     string thepage = postreqreader.ReadToEnd(); 
     TextBox1.Text = thepage; 

フォームアプリケーションが正常に動作しますが、.aspxのにはありません。理由は分かりません。それで助けてください。ありがとう。

+0

何が問題なのですか? –

+0

'thepage'は何も得られませんか、またはテキストボックスは更新されていませんか?例外がスローされていないことをデバッガで確認しましたか? –

+0

デバッガをチェックしましたが、例外はありません。 – Tomo84

答えて

1

ここに暗闇の中で撮影、しかし、あなたは常に前後に送信される要求と応答を確認するためにバイオリンや放火犯を開くことができ、それに失敗

postReq.Credentials = CredentialCache.DefaultCredentials; 

を試してみてください。たぶんあなたは、あなたが要求と一緒に送信しているデータがあなたが期待しているものではないことがわかりますか?