我正在尝试发送获取请求并获取网页内容。我有这些代码。
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”(您是否缺少使用指令或程序集引用?) C:\Users\abidinberkay1\documents\visual studio 2012\Projects\App1\App1\BlankPage1.xaml.cs 45 66 App1
最佳答案
您正在调用“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 应用商店应用程序。您应该特别指出您正在从事的项目类型 - 这将帮助我们更快地确定这些类型的事情。
关于c# - Http Get 请求 GetResponse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13695437/