例如:
我必须根据此reference发布数据 他们要求以本地文件作为正文发布请求。
他们建议的卷曲是:curl -i --data-binary @test.mp3 http://developer.doreso.com/api/v1
但我怎样才能在c#中做同样的事情?
答案 0 :(得分: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);