Не получается POST-запрос с передачей файлов через HttpWebRequest - C#
Формулировка задачи:
пытаюсь сделать POST-запрос типа MIME на сайт... должен передавать несколько файлов и значение одной переменной... не получается даже с одной переменной... ниже представлен код, кто может, помогите! очень давно уже бьюсь...
В чём может быть проблема? может не хватает заголовков, хотя я пытался объявлять по максимуму до этого, эффект ноль... от сервера приходит сообщение: Запрос был прерван: запрос отменён... Если закоментить строкуто приходит нормальный ответ от сервера, но при просмотре журнала на сервере он показывает, что был запрос, но ничего не пришло...
Очень прошу помощи, т.к. уже неделю не могу справится с этой мурнёй...
Добавлено через 2 часа 22 минуты 9 секунд
вот в чём проблема... почему-то вообще не формируется тело запроса... я посмотрел трафик через IRIS, вот что уходит от меня к серверу:
POST http://.......ru/br...it/receiver.php HTTP/1.1
Content-Type: multipart/form-data; boundary=---------------------------8cbe7f8bfa87cb7
Host: kuzmin.academic.ru
Content-Length: 13
Expect: 100-continue
Proxy-Connection: Keep-Alive
System.Byte[]
с чем это может быть связано? неправильно формирую поток?
string siteURL = "http://....ru/br..it/receiver.php"; string id = "24523532"; string content = ""; string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); HttpWebRequest myRequest; try { myRequest = (HttpWebRequest)WebRequest.Create(siteURL); myRequest.Proxy = new WebProxy("10.0.0.6", 8080); myRequest.ContentType = "multipart/form-data; boundary=" + boundary; myRequest.Method = "POST"; myRequest.KeepAlive = true; myRequest.Credentials = CredentialCache.DefaultCredentials; content = content + (boundary + "\r\n"); content = content + ("Content-Disposition: form-data; name=\"id\"\r\n"); content = content + ("\r\n"); content = content + (id + "\r\n"); content = content + (boundary + "--" + "\r\n"); Console.WriteLine("Request was formed successfuly to {0}\nContent:\n{1}", siteURL, content); byte[] data = Encoding.UTF8.GetBytes(content); myRequest.ContentLength = data.Length; Console.WriteLine("Posted Length:" + data.Length); StreamWriter sw = null; sw = new StreamWriter(myRequest.GetRequestStream()); sw.Write(data); sw.Close(); Console.WriteLine("\nUpload successfuly\nRequest:\n"); HttpWebResponse resp = (HttpWebResponse)myRequest.GetResponse(); StreamReader sr3 = new StreamReader(resp.GetResponseStream(), Encoding.UTF8); string outHtml = sr3.ReadToEnd(); Console.WriteLine(outHtml); sr3.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadLine();
myRequest.ContentLength = data.Length;
Решение задачи: «Не получается POST-запрос с передачей файлов через HttpWebRequest»
textual
Листинг программы
myRequest.ServicePoint.Expect100Continue = false;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д