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;

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


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

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

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