Http Получить Запрос GetResponse Ошибка

Я пытаюсь отправить запрос на получение и получить содержимое веб-страницы. у меня есть эти коды.

string url = "www.google.com";

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

Я нашел эти коды на многих сайтах, и это правильно, но «GetResponse» выдает ошибку. Его объяснение ниже.

Это проблема Visual Studio 2012? Он не может найти метод GetResponse и просто находит метод GetResponseStream, когда я нажимаю G.

Я пытался сделать это с помощью класса WebClient, но WebClient также не может быть найден. Возникают ли эти проблемы из-за Visual Studio 2012? или любая причина?

Ошибка 1 «System.Net.HttpWebResponse» не содержит определения для «GetResponse», и не удалось найти метод расширения «GetResponse», принимающий первый аргумент типа «System.Net.HttpWebResponse» (вы пропустили директиву using или ссылка на сборку?) C:\Users\abidinberkay1\documents\visual studio 2012\Projects\App1\App1\BlankPage1.xaml.cs 45 66 App1


person abidinberkay    schedule 04.12.2012    source источник
comment
Я отредактировал ваш заголовок. См. Должны ли вопросы включать «теги» в свои заголовки?, если нет единого мнения, не следует.   -  person John Saunders    schedule 04.12.2012


Ответы (1)


Вы вызываете "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 и await. Это позволяет вам легко использовать асинхронные методы при написании кода, который кажется синхронным. Для этого я добавил ключевое слово async в объявление метода перед типом возвращаемого значения (в данном случае void) и добавил await. > перед вызовом WebRequest.GetResponseAsync().

Чтобы ответить на ваш вопрос о том, как узнать, какую библиотеку вы используете: в этом случае вы выбрали приложение Магазина Windows. Вам следует особо указать, над каким проектом вы работаете — это поможет нам быстрее разобраться с такими вещами.

person Rob    schedule 04.12.2012
comment
спасибо за быстрый ответ, но все еще не работает. Нет такого класса GetResponse для запроса. Когда я снова нажал G, просто существуют beginGetResponse, endGetResponse, GetResponseAsync. - person abidinberkay; 04.12.2012
comment
На самом деле есть такой метод: msdn.microsoft.com/en-us/library/ . Однако, если вы используете другую библиотеку базовых классов, вам придется указать это. Возможно, вы используете Silverlight, поскольку вы используете XAML? - person Rob; 04.12.2012
comment
Есть ли способ узнать, какую библиотеку я использую? Я установил Visual Studio 2012, но не смотрел подробно библиотеки. Я пытаюсь создать программу для приложения Microsoft Store, я выбрал приложение Microsoft Store - пустой проект, но я думаю, что, как вы сказали, есть проблема с библиотекой. Должен ли я использовать Silverlight? - person abidinberkay; 04.12.2012
comment
@Rob Я пытаюсь сделать то же самое, но пытаюсь получить данные xml для использования в своем универсальном приложении (XAML). Как я могу сохранить содержимое этого ответа в формате xml? - person envyM6; 21.09.2015