HttpWebRequest: ПОСТ-запрос, не формируется multipart/form-data - C#
Формулировка задачи:
Добрый ...
Есть проблема с формировкой запроса в формате multipart/form-data
Сервер не может разбить данные на имена и значения ,то есть данные подобного формата
должны быть приведены к следующему виду
Через сниффер вижу что там где создается подобная таблица и запрос происходит успешно ,
там где ее нет или она кривая ничего не получается .
Данные считываю из файла в котором пакет от реального браузера совершивший успешный запрос
В чем может быть проблема ?
-----------------------------54472172614771 Content-Disposition: form-data; name="desc_width" 20% -----------------------------54472172614771 Content-Disposition: form-data; name="attrib_width" 10%
name value desc_width 20% attrib_width 10%
HttpWebRequest reQ = (HttpWebRequest)HttpWebRequest.Create("http://host.php"); reQ.Method = "POST"; reQ.Headers.Add("X-Requested-With", "XMLHttpRequest"); reQ.Host = "host.ru"; reQ.ContentLength = data_.Length; reQ.ServicePoint.Expect100Continue = true; reQ.KeepAlive = true; reQ.AllowAutoRedirect = true; reQ.Headers.Add(HttpRequestHeader.CacheControl, "no-cache"); reQ.Headers.Add(HttpRequestHeader.Cookie, req.CookieContainer.GetCookieHeader(req.RequestUri)); reQ.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";//text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 reQ.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); reQ.Headers.Add(HttpRequestHeader.AcceptCharset, "windows-1251,utf-8;q=0.7,*;q=0.7"); reQ.Referer = "http://hifi-profi.ru/administrator/index.php"; reQ.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; reQ.Headers.Add(HttpRequestHeader.AcceptLanguage, "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"); reQ.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)"; reQ.ContentType = "multipart/form-data ; boundary=-----------------------------5447217261477"; Stream newS = reQ.GetRequestStream(); newS.Write(data_, 0, data_.Length); HttpWebResponse rsp = (HttpWebResponse)reQ.GetResponse(); StreamReader srr = new StreamReader(rsp.GetResponseStream(), Encoding.UTF8); String ss = srr.ReadToEnd(); webBrowser1.DocumentText = ss;
Решение задачи: «HttpWebRequest: ПОСТ-запрос, не формируется multipart/form-data»
textual
Листинг программы
HttpWebRequest reQ = (HttpWebRequest)HttpWebRequest.Create("sdff"); reQ.Method = "POST"; reQ.Headers.Add("X-Requested-With", "XMLHttpRequest"); reQ.Host = "fdsfs"; reQ.ContentLength = query.Length; reQ.CookieContainer = cook; reQ.ServicePoint.Expect100Continue = true; reQ.KeepAlive = true; reQ.AllowAutoRedirect = true; reQ.Headers.Add(HttpRequestHeader.CacheControl, "no-cache"); reQ.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";//text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 reQ.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate"); reQ.Referer = "fdsfd"; reQ.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; reQ.Headers.Add(HttpRequestHeader.AcceptLanguage, "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"); reQ.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"; reQ.ContentType = "multipart/form-data ; boundary=--" + boundary;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д