Prześlij wiele plików w jednym HTTPWebRequest
Stworzyłem usługę, która akceptuje 2 rzeczy:
1) Parametr ciała o nazwie „typ”.
2) Plik csv do przesłania.
czytam te dwie rzeczy po stronie serwera:
//Read body params
string type = HttpContext.Current.Request.Form["type"];
//read uploaded csv file
Stream csvStream = HttpContext.Current.Request.Files[0].InputStream;
jak mogę to przetestować, używamSkrzypek aby to przetestować, ale mogę wysyłać tylko jedną rzecz na raz (typ lub plik), ponieważ obie rzeczy mają inny typ zawartości, jak mogę użyć typu zawartościdane wieloczęściowe / formularze iapplication / x-www-form-urlencoded w tym samym czasie.
Nawet używam tego kodu
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);
}
To również nie wysyła żadnego pliku na serwer.