Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
37 / 37 / 8
Регистрация: 11.05.2011
Сообщений: 78
1

HttpWebRequest добавление данных в запрос

11.05.2011, 14:24. Просмотров 3656. Ответов 5
Метки нет (Все метки)

Нужно авторизироваться на сервере. Через прокси посмотрел, что такой запрос нужно создать:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
POST http://site.ru/admin.php HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://site.ru/admin.php
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: site.ru
Pragma: no-cache
Cookie: PHPSESSID=0chp811uo4t6ocgp5n3jl3bma7; rise=1
Content-Length: 39
 
aid=administrator&pwd=passG&op=login

заголовки создаю через HttpWebRequest.Headers.Add
проблема возникает с последним передаваемым параметром, где собственно содержится имя и пароль
прокси определяет этот параметр как текст, а не как заголовок

Как можно добавить эти данные в HttpWebRequest?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2011, 14:24
Ответы с готовыми решениями:

Запрос HttpWebRequest через прокси
Всем привет. Делаю запрос проходящий через прокси. Делаю вот так: HttpWebRequest request =...

HttpWebRequest асинхронный post запрос
Мне нужно создать post запрос и послать его асинхронно делаю это вот так: HttpWebRequest...

HttpWebRequest любой запрос возвращает 403
WebRequest reqGET = (HttpWebRequest)WebRequest.Create("https://www.fl.ru/"); ...

Post запрос HttpWebRequest через прокси socks5
Есть код простого пост запроса string POST(string url, string data) { ...

5
_
2359 / 1232 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
11.05.2011, 15:06 2
Используй свойство credentials y HttpWebRequest
0
37 / 37 / 8
Регистрация: 11.05.2011
Сообщений: 78
12.05.2011, 12:35  [ТС] 3
не катит В посылаемом запросе не добавляются данные пользователь/пароль

Вот код, может что не так делаю?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://site.ru/admin.php");
myHttpWebRequest.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*";
myHttpWebRequest.Referer = "http://site.ru/admin.php";
myHttpWebRequest.Headers.Add("Accept-Language", "ru");
           
myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
           
myHttpWebRequest.Headers.Add("Pragma", "no-cache");
            
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
 
myHttpWebRequest.Credentials = new NetworkCredential("administrator", "pass");
          
            
HttpWebResponse myHttpWebResponse =(HttpWebResponse)myHttpWebRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
Console.WriteLine(myStreamReader.ReadToEnd());
Console.ReadKey();
0
1259 / 960 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
12.05.2011, 13:18 4
Как можно добавить эти данные в HttpWebRequest?
У реквеста есть метод что-то вроде GetRequestStream

вот бери этот стрим, переводи нужную строку в массив байтов и пиши туда

Добавлено через 2 минуты
credentials
Интересно есть вообще в интернете хоть один сайт где эта штука работает?)
1
49 / 48 / 9
Регистрация: 12.01.2011
Сообщений: 135
12.05.2011, 16:39 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
System.Net.WebRequest reqPOST = System.Net.WebRequest.Create(@"http://site.ru/send.php");
reqPOST.Method = "POST"; // Устанавливаем метод передачи данных в POST
reqPOST.Timeout = 120000; // Устанавливаем таймаут соединения
reqPOST.ContentType = "application/x-www-form-urlencoded"; // указываем тип контента
// передаем список пар параметров / значений для запрашиваемого скрипта методом POST
// здесь используется кодировка cp1251 для кодирования кирилицы и спец. символов в значениях параметров
// Если скрипт должен принимать данные в utf-8, то нужно выбрать Encodinf.UTF8
byte[] sentData = Encoding.GetEncoding(1251).GetBytes("aid=administrator&pwd=passG&op=login", Encoding.GetEncoding(1251)));
reqPOST.ContentLength = sentData.Length;
System.IO.Stream sendStream = reqPOST.GetRequestStream();
sendStream.Write(sentData, 0, sentData.Length);
sendStream.Close();
//System.Net.WebResponse result = reqPOST.GetResponse();
2
37 / 37 / 8
Регистрация: 11.05.2011
Сообщений: 78
13.05.2011, 11:40  [ТС] 6
спасибо, то, что надо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2011, 11:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

HttpWebRequest: ПОСТ-запрос, не формируется multipart/form-data
Добрый ... Есть проблема с формировкой запроса в формате multipart/form-data Сервер не может...

Не получается POST-запрос с передачей файлов через HttpWebRequest
пытаюсь сделать POST-запрос типа MIME на сайт... должен передавать несколько файлов и значение...

Как вызвать следующий запрос httpWebRequest после обработки предыдущего?
Как вызвать следующий запрос после обработки предыдущего ? Использую запросы в таком виде: var...

Удваивание POST данных при httpwebrequest
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.Timeout =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.