2015-02-11 75 views

回答

0

尝试使用HttpWebRequest类并发送multipart/form-data请求中的文件。

以下是一些示例代码,您可以使用该代码进行一些修改。

首先读出的文件的内容:

byte[] fileToSend = File.ReadAllBytes(@"C:\test.mp3"); 

然后准备HttpWebRequest对象:

string url = "http://developer.doreso.com/api/v1"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.Method = "POST"; 
request.ContentType = "application/octet-stream"; 
request.ContentLength = fileToSend.Length; 

发送该文件作为主体请求:

using (Stream requestStream = request.GetRequestStream()) 
{ 
    requestStream.Write(fileToSend, 0, fileToSend.Length); 
    requestStream.Close(); 
} 

阅读响应,那么:

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
string result; 
using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
{ 
    result = reader.ReadToEnd(); 
} 

使用响应,如果您需要:

Console.WriteLine(result); 
+0

不要[剽窃(http://stackoverflow.com/questions/15087028/upload-multiple-files-in-a-single-httpwebrequest ),尤其是当代码不起作用(是的,我看到你忍者 - 编辑相似之处)。您也不希望一次读取字节数组中的整个文件。 – CodeCaster 2015-02-11 16:49:28

+1

快速浏览文档说Content-Type应该是“application/octet-stream”,而不是“multipart/form-data” – ry8806 2015-02-11 16:51:54

+0

谢谢@ ry8806,我已经编辑了我的答案。 – 2015-02-11 16:52:46

相关问题