5

get リクエストを送信して、Web ページのコンテンツを取得しようとしています。私はこれらのコードを持っています。

string url = "www.google.com";

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
 HttpWebResponse response = (HttpWebResponse)response.GetResponse();

これらのコードは多くのサイトから見つけましたが、正しいのですが、「GetResponse」でエラーが発生しています。以下その説明。

Visual Studio 2012 の問題でしょうか? GetResponse メソッドを見つけることができず、GetResponseStreamG を押したときにメソッドを見つけるだけです。

WebClient クラスでこれを実行しようとしましたが、WebClient も見つかりません。これらの問題は、Visual Studio 2012 が原因で発生しますか? または何らかの理由ですか?

エラー 1 'System.Net.HttpWebResponse' には 'GetResponse' の定義が含まれておらず、タイプ 'System.Net.HttpWebResponse' の最初の引数を受け入れる拡張メソッド 'GetResponse' が見つかりませんでした (using ディレクティブまたはアセンブリ参照?) C:\Users\abidinberkay1\documents\visual studio 2012\Projects\App1\App1\BlankPage1.xaml.cs 45 66 App1

4

1 に答える 1

4

「response.GetResponse()」を呼び出しています。リクエスト.GetResponse ()です。

更新: あなたのコメントに基づいて、いくつかの新しいコードを提案します:

private async void btnRequest_Click(object sender, EventArgs e)  // Note: async added
{
    string url = "www.google.com";
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    HttpWebResponse response = (HttpWebResponse) await request.GetResponseAsync(); // (note: await added, method call changed to GetResponseAsync()

}

C# 5.0 の async および await パターンを使用するようにコードを更新しました。これにより、同期していると感じるコードを記述しながら、非同期メソッドを簡単に使用できます。これを行うために、戻り値の型 (この場合は void) の前にasyncキーワードをメソッド宣言に追加し、 WebRequest.GetResponseAsync()を呼び出す前にawaitキーワードを追加しました。

使用しているライブラリを知る方法に関する質問に答えるには、この場合、Windows ストア アプリを選択しました。取り組んでいるプロジェクトの種類を具体的に示す必要があります。これにより、これらの種類のプロジェクトをより迅速に解決することができます。

于 2012-12-04T03:08:16.523 に答える