Я создал услугу, которая принимает 2 вещи:Загрузите несколько файлов в один HTTPWebRequest
1) Параметр тела, называемый «тип».
2) Файл csv, который будет загружен.
я читаю эти две вещи в стороне сервера, как это:
//Read body params
string type = HttpContext.Current.Request.Form["type"];
//read uploaded csv file
Stream csvStream = HttpContext.Current.Request.Files[0].InputStream;
, как я могу проверить это, я использую Скрипач, чтобы проверить это, но я могу отправить только одну вещь в то время (либо тип или файл), поскольку обе вещи имеют различный тип контента, как я могу использовать тип контента multipart/form-data и application/x-www-form-urlencoded в то же время.
Даже я использую этот код
public static void PostDataCSV()
{
//open the sample csv file
byte[] fileToSend = File.ReadAllBytes(@"C:\SampleData.csv");
string url = "http://localhost/upload.xml";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "multipart/form-data";
request.ContentLength = fileToSend.Length;
using (Stream requestStream = request.GetRequestStream())
{
// Send the file as body request.
requestStream.Write(fileToSend, 0, fileToSend.Length);
requestStream.Close();
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//read the response
string result;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
Это также не отправляет любой файл на сервере.
** многослойные **/формы-данные уже является заголовком для ** нескольких типов содержимого (файлы и данные формы). Вам не нужно приложение application/x-www-form-urlencoded с ним –
, но оно не работает для меня, на стороне сервера я не получаю никакого файла, или вы можете сказать поток. – Popeye