5

我试图发送一个获取请求并获取网页的内容。我有这些代码。

string url = "www.google.com";

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

我从许多网站上找到了这些代码,它是正确的,但“GetResponse”给出了错误。其解释如下。

这是 Visual Studio 2012 的问题吗?GetResponseStream当我按 G 时,它找不到 GetResponse 方法,只能找到方法。

我尝试使用 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关键字,在返回类型之前(在本例中为 void),并且在调用WebRequest.GetResponseAsync()之前添加了await关键字。

要回答有关如何知道您正在使用的库的问题:在这种情况下,您选择了一个 Windows 应用商店应用程序。你应该特别指出你正在从事什么样的项目——这将帮助我们更快地确定这些事情。

于 2012-12-04T03:08:16.523 回答