Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HTTPS connection, Как получить html страничку 
V
    Опции темы
frantik
Дата 9.7.2010, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 15.9.2009
Где: Брест, Беларусь

Репутация: нет
Всего: нет



Есть такая задача: нужно получить html-страницу с сайта "https://хост:порт". 
Серверу отсылается POST-запрос с параметрами (логин, пароль, ...) и он возвращает в ответ нужную страницу. Пробовал через WebRequest- c http
 работает, а с https - нет.
Как я понимаю, сначала необходимо установить соединение с сервером, а затем отправлять запрос. Гугл ничего готового не выдаёт. Пните, в каком направлении копать.
PM MAIL   Вверх
wester
Дата 9.7.2010, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



ну можно скачать страницу с помощью WebClient.DownloadString()
PM MAIL   Вверх
KelTron
Дата 9.7.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Код

protected static string SendPost(string url, string pars)
{
    var request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";

    byte[] data = Encoding.UTF8.GetBytes(pars);
    request.ContentLength = data.Length;
    Stream stream = request.GetRequestStream();
    stream.Write(data, 0, data.Length);
    stream.Close();

    var response = (HttpWebResponse)request.GetResponse();
    var reader = new StreamReader(response.GetResponseStream());
    return reader.ReadToEnd();
}




--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
frantik
Дата 12.7.2010, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 15.9.2009
Где: Брест, Беларусь

Репутация: нет
Всего: нет



Спасибо. Заработало после того, как добавил функцию, которая разрешает принимать сертификат безопасности (сервак посылает его при каждом конекте). Взято  отсюда

Код

using System.Net;
using System.IO;
using System.Security.Cryptography.X509Certificates;


protected static string SendPost(string url, string pars)
{
    var request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 ( .NET CLR 3.5.30729; .NET4.0E)";
    request.ContentType = "application/x-www-form-urlencoded";
   
    //принимаем сертификаты безопасности
    ServicePointManager.ServerCertificateValidationCallback += AcceptAllCertificatePolicy;

    byte[] data = Encoding.UTF8.GetBytes(pars);
    request.ContentLength = data.Length;
    Stream stream = request.GetRequestStream();
    stream.Write(data, 0, data.Length);
    stream.Close();
    
    var response = (HttpWebResponse)request.GetResponse();
    var reader = new StreamReader(response.GetResponseStream());
    return reader.ReadToEnd();
}



protected static bool AcceptAllCertificatePolicy(object sender,
                                                X509Certificate certificate,
                                                X509Chain chain,
                                                SslPolicyErrors sslPolicyErrors)
{
    return true;
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.