Как сделать запрос GET с помощью C#

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 307023
Для версии Microsoft Visual Basic .NET в данной статье см. 301102.

В данной статье относится к следующие пространства имен библиотеки классов платформа.NET Framework корпорации Майкрософт:
  • System.Net
  • System.IO
Аннотация
Эта статья содержит пошаговые инструкции для простой запрос GET для извлечения веб-страницы из Интернета. Платформа.NET Framework Microsoft включает в себя множество полезных классов для работы в сети, включая возможность предоставления веб-запросов.

Требования

В следующем списке представлены рекомендованные оборудование, программное обеспечение, сетевая инфраструктура и пакеты обновления, которые необходимы:
  • Windows Server 2003, Microsoft Windows 2000Professional, Windows 2000 Server, Windows 2000 Advanced Server или сервер MicrosoftWindows NT 4.0
  • Microsoft Visual Studio.
Примечание Если пользователь находится за прокси-сервером, необходимо иметь внутренние веб-адрес или значения статического прокси-сервера (см. шаги 5 и 6 раздела "запроса веб-страницы") для тестирования кода в этой статье.

Запрос веб-страницы

Возможность получить веб-страницу программными средствами имеет множество применений. Эта возможность, предоставленная программистов Microsoft Visual Basic 6.0 до передачи управления Интернет или с помощью прямого создания кода для интерфейсов API WinInet.

В .NET пространства имен System.Net предоставляют класс WebRequest для инкапсуляции запроса интернет-ресурса и класса WebResponse для представления данных, которые возвращаются.

С помощью этих объектов можно получить поток, представляющий ответ на определенный запрос. Когда поток, можно прочесть ответ подобно тому, как чтение из локального текстового файла или из любого другого источника.

Чтобы сделать запрос GET, выполните следующие действия.
  1. Запустите Visual Studio.
  2. Создайте новое консольное приложение в Visual C#. VisualStudio автоматически создаст пустой метод Main и открытый класс.
  3. Убедитесь, что проект ссылается по крайней мере на System.dll.
  4. Используйте директивы using в пространство имен System , пространства имен System.NET и пространство имен System.IO (для объектов потока) таким образом, не будет toqualify объявлений из этих пространств имен в коде. Эти statementsmust использовать перед всеми остальными объявлениями.
    using System;using System.Net;using System.IO;
  5. В этом примере жестко URL-адрес как переменная. В areal системе вы, вероятно, получит это значение в качестве параметра afunction, или как аргумент командной строки для консольного приложения.
    string sURL;sURL = "http://www.microsoft.com";
  6. Создайте новый объект WebRequest . Это можно сделать только с помощью статического метода создания ("Новый WebRequest" не является допустимым) класса WebRequest . Предоставить aspart URL-адрес целевой объект вызова метода Create для инициализации объекта, имеющего это значение.
    WebRequest wrGETURL;wrGETURL = WebRequest.Create(sURL);
  7. Если вы хотите запросить URL-адреса за пределами локальной сети, andyou за прокси, необходимо создать объект WebProxy и затем предоставить этот объект в объект WebRequest . WebProxy объект имеет различные свойства, которые не установлены в приведенном ниже коде thesample, которые позволяют указать те же основные сведения, youcan Настройка через параметры прокси-сервера в обозревателе Internet Explorer.
    WebProxy myProxy = new WebProxy("myproxy",80);myProxy.BypassProxyOnLocal = true;wrGETURL.Proxy = myProxy;
  8. Если требуется использовать параметры, которые были alreadyconfigured в обозревателе Internet Explorer, можно сделать это через статический метод GetDefaultProxy класса WebProxy .
    wrGETURL.Proxy = WebProxy.GetDefaultProxy();
    Примечание В Visual Studio 2005 или Visual Studio 2008 метод GetDefaultProxy работает. Однако этот метод является устаревшим. Для получения дополнительных сведений о методе GetDefaultProxy в 2.0 платформа.NET Framework корпорации Майкрософт посетите веб-узел Developer Network (MSDN) followingMicrosoft:
  9. После завершения набора вверх ваш запрос bysetting целевой URL-адрес и, предоставляя любую информацию соответствующего прокси-сервера, вы canuse ваш запрос на получение объекта потока , который соответствует в ответ на ваш запрос.
    Stream objStream;objStream = wrGETURL.GetResponse().GetResponseStream();
  10. Если поток ответа, можно использовать streamas можно использовать любой другой поток и прочитайте содержимое thestream построчно или даже все одновременно. Следующий пример codeloop считывает поток одной строки за один раз до метода ReadLine возвращает значение null, выводя каждую строку на консоль.
    StreamReader objReader = new StreamReader(objStream);string sLine = "";int i = 0;while (sLine!=null){	i++;	sLine = objReader.ReadLine();	if (sLine!=null)		Console.WriteLine("{0}:{1}",i,sLine);}Console.ReadLine();
  11. Сохраните и запустите программу. Проверьте haveconfigured информацию о прокси для среды корректно (см. шаги 7and 8). Вы должны увидеть строки консольного нумерованные и выхода для содержимого HTML.

Полный пример кода

using System;using System.Net;using System.IO;namespace MakeAGETRequest_charp{	/// <summary>	/// Summary description for Class1.	/// </summary>	class Class1	{		static void Main(string[] args)		{			string sURL;			sURL = "http://www.microsoft.com";			WebRequest wrGETURL;			wrGETURL = WebRequest.Create(sURL);						WebProxy myProxy = new WebProxy("myproxy",80);			myProxy.BypassProxyOnLocal = true;	        wrGETURL.Proxy = WebProxy.GetDefaultProxy();			Stream objStream;			objStream = wrGETURL.GetResponse().GetResponseStream();			StreamReader objReader = new StreamReader(objStream);			string sLine = "";			int i = 0;			while (sLine!=null)			{				i++;				sLine = objReader.ReadLine();				if (sLine!=null)					Console.WriteLine("{0}:{1}",i,sLine);			}			Console.ReadLine();		}	}}

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 307023 — последний просмотр: 04/09/2016 23:31:00 — редакция: 8.0

Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2008 Express Edition

  • kbhowtomaster kbio kbmt KB307023 KbMtru
Отзывы и предложения