Не выходит составить правильный запрос на сервер - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д