2013-02-26 28 views
3

我創建了一個服務的多個文件,其中接受兩兩件事:上傳在一個單一的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-dataapplication/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); 
    } 

這也不會發送任何文件到服務器。

+2

** **多/格式數據已是**多個**內容類型(文件和表單數據)的標題。你不應該需要應用程序/ x-www-form-urlencoded它 – 2013-02-26 10:48:51

+0

但它不適合我,在服務器端我沒有得到任何文件,或者你可以說流。 – Popeye 2013-02-26 10:53:23

回答

相關問題