Http Get Request GetResponse错误

时间:2012-12-04 03:04:39

标签: c# get request windows-store webresponse

我正在尝试发送获取请求并获取网页内容。我有这些代码。

string url = "www.google.com";

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

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

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

我尝试使用WebClient类执行此操作,但也找不到WebClient。  是否因Visual Studio 2012而出现这些问题?或任何原因?

错误1'System.Net.HttpWebResponse'不包含'GetResponse'的定义,并且没有可以找到接受类型'System.Net.HttpWebResponse'的第一个参数的扩展方法'GetResponse'(你是否错过了使用指令或程序集引用?)C:\ Users \ abidinberkay1 \ documents \ visual studio 2012 \ Projects \ App1 \ App1 \ BlankPage1.xaml.cs 45 66 App1

1 个答案:

答案 0 :(得分: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),并且我添加了 await 调用WebRequest.GetResponseAsync()之前的>关键字。

要回答有关如何知道您正在使用哪个库的问题:在这种情况下,您选择了Windows应用商店应用。你应该特别指出你正在做什么样的项目 - 这将有助于我们更快地解决这些问题。