如何使用 HTTP PUT 方法发送字节数组?
RestRequest
类的方法 AddFile
发送额外的 header 。
方法 AddParameter
采用 Object
类型。
我是怎么做到的:
byte[] data;
using (var ms = new MemoryStream())
{
Serializer.Serialize(ms, query);
data = ms.ToArray();
ms.Close();
}
var client = new RestClient(ServerPath);
var request = new RestRequest(RequestPath, Method.PUT);
request.AddFile("stream", x => new MemoryStream(data), string.Empty);
client.ExecuteAsync(request, responce => Debug.WriteLine(responce.Content));
但是在服务器端我看到额外的标题
-------------------------------28947758029299 Content-Disposition: form-data; name="stream"; filename="" Content-Type: application/octet-stream [RAW DATA HERE] -------------------------------28947758029299--
额外的标题使查询不可读。我做错了什么?
最佳答案
感谢 Marc Gravell。 解决方案:
var client = new HttpClient(); var httpContent = new ByteArrayContent(data); client.PutAsync(Path, httpContent);
关于C# RestSharp PUT 方法并发送原始字节 (protobuf),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15067894/