Не выходит составить правильный запрос на сервер - C#

Узнай цену своей работы

Формулировка задачи:

Не выходит составить правильный запрос на сервер. Вот как выглядит корректный запрос (работающий как надо) сделанный через браузер на тот сервер:
POST /some/path HTTP/1.1
Host: xxx.com
Connection: keep-alive
Content-Length: 401
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: [url]http://xxx.com[/url]
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: [url]http://xxx.com/some/path[/url]
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: PHPSESSID=000; _ym_uid=000; _ym_isad=000; sid=000; stid=000; aid=; src=; plf=; rtid=; ref=; ip=000.000.000.000; s2lid=000; _ym_visorc_000=w; ucv=0x0x0x

RegisterUserForm%5Bemail%5D=&RegisterUserForm%5Bpassword%5D=&RegisterUserForm%5Bconfirm_password%5D=&RegisterUserForm%5Bname%5D=&RegisterUserForm%5Bsurname%5D=&RegisterUserForm%5Bcountry%5D=1&RegisterUserForm%5Bcity%5D=&RegisterUserForm%5Baddress%5D=&RegisterUserForm%5Bindex%5D=&RegisterUserForm%5Bphone%5D=&RegisterUserForm%5Bbank%5D=1&RegisterUserForm%5BverifyCode%5D=&RegisterUserForm%5Bterms%5D=0
Как ни пытаюсь программно отослать такой же запрос - ничего не выходит. Вот как выглядит последняя попытка:
WebClient wc = new WebClient();
                    wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
                    wc.Headers.Add("Origin", "http://xxx.com");
                    wc.Headers.Add("Referer", "http://xxx.com");
                    wc.Headers.Add("Cookie", sCookie); // sCookie - строка с нужным куки
                    wc.Headers.Add("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
                    wc.Headers.Add("Upgrade-Insecure-Requests", "1");
                    wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36");
                    wc.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
                    wc.Headers.Add("Cache-Control", "max-age=0");
bResp = wc.UploadData(full_uri, bData);  // full_uri - строка с адресом сервера куда идет запрос, bData - массив байтов куда я скинул поля формы что должна быть передана на сервер (только пары поле-значение, никаких заголовков или куки).
string sResp = Encoding.UTF8.GetString(bResp); // принимаю ответ сервера, кодировка UTF8 из-за нелатинского алфавита который может быть в ответе.
В результате моего опуса на сервер приходит запрос, но страничка в браузере куда я отдаю ответ как бы просто обновляется, хотя должна быть реакция на незаполненные поля формы (ну как обычно красным шрифтом замечания). Посмотреть подробнее что там происходит не представляется возможным т.к. соответствующие программы вылетают при такой попытке, хотя с другими запросами работают. Помогите с кодом, что я делаю не так? Может заголовок какой исправить/добавить? Лучше всего отпишите свой вариант составления такого пост запроса, буду очень благодарен!

Решение задачи: «Не выходит составить правильный запрос на сервер»

textual
Листинг программы
myCookieContainer = new CookieContainer();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы