Проблема при отправке POST-запроса через C#

Spam.Assistant

Новичок
Регистрация
22.11.2016
Сообщения
3
Благодарностей
1
Баллы
3
Здравствуйте!
Несколько часов играюсь с непонятной для меня проблемой.
Есть код на C# для загрузки файла через POST запрос.
Вот собственно сам код :
Код:
string proxy = project.Variables["proxy"].Value;
string coockie = project.Variables["coockies"].Value;
string body2 = project.Variables["body_upload"].Value;
string ua = project.Variables["user_agents"].Value;
string simbols = project.Variables["random_14_for_upload"].Value;
string fname = project.Variables["upload_filename"].Value;
string boundary = "---------------------------"+simbols;
var resultHttpPost = ZennoPoster.HttpPost("http://mail.rambler.ru/upload",
@"---------------------------"+simbols+"\n"+@"Content-Disposition: form-data; name=""file""; filename="+fname+"\n"+
@"Content-Type: text/plain"+"\n"+simbols+"\n\n"+boundary+"\n"+@"Content-Disposition: form-data; name=""local"""+"\n"+"yes"+boundary,
"multipart/form-data",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, coockie, ua, true, 5,
new[]{"Host: mail.rambler.ru",
"Accept: */*",
"Accept-Language: en-US,en;q=0.5",
"Referer: https://mail.rambler.ru/",
"Connection: keep-alive",
"Pragma: no-cache",
"Cache-Control: no-cache",});
return resultHttpPost;
Обратите внимание на эту строку :
Код:
Content-Disposition: form-data; name=""file""; filename="+fname+"\n"
Перенос там в конце строки.
Но,проблема состоит в том что при отправке самого запроса перенос получается после name="file".
Из-за этого запрос не работает.
Вот скриншот с Фидлера :



Пожалуйста,помогите решить эту траблу,уже более 3-х часов убил из-за нее..
С меня $ вознаграждение.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 796
Благодарностей
1 264
Баллы
113
А copy в нотепед и обратно не помогает?
 

Spam.Assistant

Новичок
Регистрация
22.11.2016
Сообщения
3
Благодарностей
1
Баллы
3

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
455
Баллы
63
Тут явная ошибка в формате запроса.
Отлови оригинальный запрос фидлером, а затем воспроизводи вплоть до каждого переноса строки, где-то один перенос, где-то два.

Спецификация требует обрамлять в кавычки значение в filename="filename.jpg" в разделе Content-Disposition
Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"

Следующий код не тестировал, попробуй:
C#:
string proxy = project.Variables["proxy"].Value.Trim();
string coockie = project.Variables["coockies"].Value.Trim();
string body2 = project.Variables["body_upload"].Value.Trim();
string ua = project.Variables["user_agents"].Value.Trim();
string simbols = project.Variables["random_14_for_upload"].Value.Trim();
string fname = project.Variables["upload_filename"].Value.Trim();
string boundary = "---------------------------" + simbols;

string data = "";
data += boundary + "\n";
data += string.Format("Content-Disposition: form-data; name=\"file\"; filename=\"{0}\"\n", fname);
data += "Content-Type: text/plain\n";
data += simbols + "\n\n";
data += boundary + "\n";
data += "Content-Disposition: form-data; name=\"local\"\n";
data += "yes\n";
data += boundary + "\n";

var resultHttpPost = ZennoPoster.HttpPost("http://mail.rambler.ru/upload",
data,
"multipart/form-data",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, coockie, ua, true, 5,
new[]{"Host: mail.rambler.ru",
"Accept: */*",
"Accept-Language: en-US,en;q=0.5",
"Referer: https://mail.rambler.ru/",
"Connection: keep-alive",
"Pragma: no-cache",
"Cache-Control: no-cache",});
return resultHttpPost;
 
Последнее редактирование:

Spam.Assistant

Новичок
Регистрация
22.11.2016
Сообщения
3
Благодарностей
1
Баллы
3
Проблему решил VerBin,спасибо он получил на свой WMZ кош :-)
 
  • Спасибо
Реакции: VerBin

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)