Загрузка файла в форму post запросом

509
17 июня 2017, 11:14

Здравствуйте. Помогите пожалуйста, существует на странице форма, которая принимает файл. Мне нужно загрузить файл через эту форму .
У меня есть адрес страницы, куки после авторизации .

В заголовках запроса(смотрел в консоле браузера) есть следуйщие параметры:

------WebKitFormBoundarySM5d7XYS2AzlAVLv  
Content-Disposition: form-data; name="fileUpload[uploadFile]"  

------WebKitFormBoundarySM5d7XYS2AzlAVLv  
Content-Disposition: form-data; name="fileUpload[uploadFile]"; filename=""  
Content-Type: application/octet-stream  

------WebKitFormBoundarySM5d7XYS2AzlAVLv    
Content-Disposition: form-data; name="yt0"  
Загрузить
------WebKitFormBoundarySM5d7XYS2AzlAVLv-- 

Не могу правильно сформировать запрос .

Код html страницы:

<form enctype="multipart/form-data" id="file-upload-importWln-form" action="/backend/units/importWln/id/43656" method="post">
    <div class="row">
        <label for="fileUpload_uploadFile">Загрузить файл</label>       
        <input id="ytfileUpload_uploadFile" type="hidden" value="" name="fileUpload[uploadFile]">
        <input name="fileUpload[uploadFile]" id="fileUpload_uploadFile" type="file">            
  </div>
    <div class="row buttons">
        <input class="button" type="submit" name="yt0" value="Загрузить">   
   </div>
</form>

Использовал такой код:

var client = new RestClient(tempUrl);
client.CookieContainer = cookie;
var request = new RestRequest(Method.POST);

request.AddHeader("cache-control", "no-cache");
request.AddHeader("name", "fileUpload[uploadFile]");
request.AddHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x"));
request.AddParameter("multipart/form-data; boundary=----WebKitFormBoundary"+ DateTime.Now.Ticks.ToString("x") + ", ------WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x") + "\r\nContent-Disposition: form-data; name=\"\"; filename=\"" + file + "\"\r\nContent-Type: false\r\n\r\n\r\n------WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x"), ParameterType.RequestBody);
request.AddFile("filename", File.ReadAllBytes(file), getOnlyName(file));
request.AddParameter("boundary=----WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x") + "Content-Disposition: form-data; name=\"yt0\"" + "Загрузить" + ", ------WebKitFormBoundary" + DateTime.Now.Ticks.ToString("x"), ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
string rep1 = response.ToString();
Answer 1

Я предлагаю использовать Postman, после успешнего отправление файла вы можете скопировать код с Postmana для отправки файла. Понадобиться Restsharp

READ ALSO
установка cookies в selenium webdriver firefox c#

установка cookies в selenium webdriver firefox c#

сохраняю cookies с прошлого захода

489
Поиск по richtextbox

Поиск по richtextbox

Как сделать поиск через TextBox по RichTextBox? Есть пример кода с англоязычного форумаПодскажите как это можно использовать или же сделать

406
Можно ли использовать C# 7.0 в VS старее 2017?

Можно ли использовать C# 7.0 в VS старее 2017?

Можно ли использовать C# 70 в VS старее 2017?

338
JSON.Net освобождение jObect ресурсов

JSON.Net освобождение jObect ресурсов

Есть небольшой код (парсер), берет JSON из вывода web-сервераИспользую так:

238