【发布时间】:2015-04-12 03:13:34
【问题描述】:
例如:
我要根据这个reference发布数据 他们要求以本地文件为主体发布请求。
他们建议的卷曲是:curl -i --data-binary @test.mp3 http://developer.doreso.com/api/v1
但是我怎样才能在 c# 中做同样的事情呢?
【问题讨论】:
标签: c# post curl httpwebrequest webrequest
例如:
我要根据这个reference发布数据 他们要求以本地文件为主体发布请求。
他们建议的卷曲是:curl -i --data-binary @test.mp3 http://developer.doreso.com/api/v1
但是我怎样才能在 c# 中做同样的事情呢?
【问题讨论】:
标签: c# post curl httpwebrequest webrequest
尝试使用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);
【讨论】: