我正在尝试发送获取请求并获取网页内容。我有这些代码。
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
答案 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应用商店应用。你应该特别指出你正在做什么样的项目 - 这将有助于我们更快地解决这些问题。