我试图发送获取请求并获取网页的内容。 我有这些代码。
string url = "www.google.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)response.GetResponse();
我从许多站点找到了这些代码,它是正确的,但"GetResponse"给出错误。它的解释如下。
这是Visual Studio 2012的问题吗?它找不到 GetResponse 方法,当我按 G 时只能找到GetResponseStream
方法。
我尝试使用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
你称之为"响应"。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 异步和等待模式。 这使您可以在编写感觉同步的代码时轻松使用异步方法。 为此,我在返回类型(在本例中为 void)之前将 async 关键字添加到方法声明中,并在调用 WebRequest.GetResponseAsync() 之前添加了 await 关键字。
若要回答有关如何知道正在使用哪个库的问题:在本例中,你选择了 Windows 应用商店应用。 你应该特别指出你正在从事什么样的项目——这将帮助我们更快地确定这些事情。