我創建了一個服務的多個文件,其中接受兩兩件事:上傳在一個單一的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);
}
這也不會發送任何文件到服務器。
** **多/格式數據已是**多個**內容類型(文件和表單數據)的標題。你不應該需要應用程序/ x-www-form-urlencoded它 – 2013-02-26 10:48:51
但它不適合我,在服務器端我沒有得到任何文件,或者你可以說流。 – Popeye 2013-02-26 10:53:23