2010-12-05 11 views
0

WebRequest.GetResponse()を使用してWebページを要求しようとしています。そのレスポンスをchararrayに変換するので、配列を並べ替えてページ上にあるHREFタグを取得できます。問題は、コードのどこかで、ページから取得する必要があるHTMLではなく、応答が "System.Net.HttpWebRequest"に変わることです。文字配列HttpWebRequestのHttpWebResponseのバイト配列は "System.Net.HttpWebRequest"を返します

char型の配列を取得するためのコード:私は何かを逃した、またはより多くの情報が必要な場合は、聞かせて

for (int i = 0; i < chararray.Length; i++) 
{ 
    // Get all HREFs 
    if (i < 500 & chararray[i] == 'h' & chararray[i + 1] == 'r' & chararray[i + 2] == 'e' & chararray[i + 3] == '=' & chararray[i + 4] == '"') 
    { 
     for (int tempi = 0; bytearray[i + 4 + tempi] != '"';) 
     { 
      tempstring = tempstring + chararray[i + 4 + tempi].ToString(); 
     } 
     urlarray[urlarray.Length + 1] = tempstring; 
     i = i + 4; 
    } 
} 
scrapeLink1.Text = urlarray[1]; 

:(トラブルシューティングのためのコメント)のリンクを検索するための

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlTextBox.Text); 
      request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7"; 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); 
      bytearray = encoding.GetBytes(Convert.ToString(response)); 
      chararray = encoding.GetChars(bytearray); 

コードを私は知っている。

答えて

1

レスポンスはストリームです。最初に読む必要があります。

HttpWebRequest request = WebRequest.Create(urlTextBox.Text) as HttpWebRequest; 
if (request != null) 
{   
    request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7"; 
    using (HttpWebRepsonse response = request.GetResponse() as HttpWebResponse) 
    using (StreamReader rdr = new StreamReader(response.GetResponseStream()) 
    { 
     string result = rdr.ReadToEnd(); 
    } 
} 
+0

少し具体的に教えてください。たとえば、レスポンスからストリームをどのように読み取るのですか?レスポンスをウェブリクエスト以外のものとして宣言する必要がありますか? – GunnarJ

+0

Joelはすでにコードを与えています。しかし、私の場合は、WebClientクラスを使用します。あなたに合ったDownloadData()オーバーロードを使用してください。 – feroze

+0

@feroze webclientでは、必要と思われるUserAgentを簡単に設定することはできません。 –

関連する問題