C# .net 4.0 将文件上传到.asp Web API
本文关键字:asp Web API 文件 net | 更新日期: 2023-09-27 18:31:05
我的.net 4.0类库发送HttpRequestMessage并从.asp Web API (REST)接收HttpResponseMessage。
当我发送一个小类时,我使用 JSON 将其解析为字符串,然后通过以下方式发送字符串:
request = new HttpRequestMessage();
request.RequestUri = new Uri(myRestAPI);
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Method = method;
if (method != HttpMethod.Get)
request.Content = new StringContent(content, Encoding.UTF8, mthv);
接下来,使用 HttpClient 发送它:
using (HttpResponseMessage httpResponse = _client.SendAsync(request).Result)
{..}
这工作正常。
现在,我的班级变大了,我该怎么送?
我所做的是压缩它并作为ByteArrayContent发送。
request = new HttpRequestMessage();
request.RequestUri = new Uri(url);
request.Method = method;
if (method != HttpMethod.Get)
request.Content = new ByteArrayContent(content);
request.Content.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");
并以相同的方式发送。
但是现在服务器确实回复了我错误:
No MediaTypeFormatter is available to read an object of type 'Byte[]' from content with media type 'multipart/form-data'.
我做错了什么??我正在尝试找到一个合适的指南,所有指南都在谈论从 web api 上传,而不是从应用程序上传到 web api。
Go get WebAPIContrib,它有一个 CompressedContent 类
有了它,你可以做到,
request.Content = new CompressedContent(new StringContent(content, Encoding.UTF8, mthv),"gzip");
压缩会神奇地发生。