rediffusion
11/4/2017 - 8:23 PM

HTTP GET

//Подменю "HTTP". Действие "Get запрос"

//Получим ссылку на фото дня сервиса Яндекс.Фото для демонстрации работы с типом ответа File
Tab Tab1 = instance.ActiveTab;
if (Tab1.URL!="https://fotki.yandex.ru/next/") {
	Tab1.Navigate("https://fotki.yandex.ru/next/");
	Tab1.WaitDownloading();
}
string strImageUrl = Tab1.FindElementByXPath("//a[starts-with(@class,'photo-well-image')]/span", 0).GetAttribute("style");
strImageUrl = new Regex(@"(?<=url\().*(?=\);)").Match(strImageUrl).Value;

//ZennoPoster.HttpGet - выполнение GET-запроса
string strGetResultHeader = ZennoPoster.HttpGet("https://www.google.ru/", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderOnly);
string strGetResultBody = ZennoPoster.HttpGet("https://www.google.ru/", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);
string strGetResultHeaderBody = ZennoPoster.HttpGet("https://www.google.ru/", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody);
string strDownloadResult = ZennoPoster.HttpGet(strImageUrl, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.File, 5000, DownloadPath: project.Path);
//string strDownloadResult2 = ZennoPoster.HttpGet(strImageUrl, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.FileAndHeaders, 5000, DownloadPath:project.Path);

//Сохраняем результаты запросов в текстовые файлы (для наглядности)
File.WriteAllText(project.Directory + @"\HeaderOnly.txt", strGetResultHeader);
File.WriteAllText(project.Directory + @"\BodyOnly.txt", strGetResultBody);
File.WriteAllText(project.Directory + @"\HeaderAndBody.txt", strGetResultHeaderBody);

project.SendInfoToLog("Выполнено! Проверьте содержимое папки проекта");

//Примечания:
//1. Параметры метода HttpGet (https://help.zennolab.com/en/v5/zennoposter/5.9.9/webframe.html#topic395.html):
//  первый: ссылка (URL);
//  второй: прокси;
//  третий: кодировка (encoding)
//  четвёртый: тип ответа сервера
//  пятый: таймаут запроса
//  шестой: куки
//  седьмой: UserAgent
//  восьмой: разрешать редиректы или нет
//  девятый: максимальное количество редиректов
//  десятый: дополнительные заголовки (AdditionalHeaders)
//  одиннадцатый: путь сохранения
//  двенадцатый: использовать исходный URL (OriginalUrl) или нет
//2. Члены перечисления ZennoLab.InterfacesLibrary.Enums.Http.ResponceType (тип ответа сервера):
//  Body Only - только тело страницы;
//  File - бинарный файл;
//  FileAndHeaders - бинарный файл и заголовки;
//  HeaderAndBody - заголовки и тело страницы;
//  HeaderOnly - только заголовки
//3. Установка значения свойства instance.DownloadsPath не влияет на путь сохранения файла методом HttpGet. Используйте соответствующий параметр метода
//4. Подробно механизмы работы с POST-GET запросами будем рассматривать на ступени Expert (уже после старта первого потока)