Ora*_*rac 5 .net c# asp.net-web-api
我有以下WebApi,它将MultipartContent返回给客户端,其中包含来自数据库的图像和一些附加数据: -
public class PhotoController : ApiController
{
public HttpResponseMessage GetPhoto(Int32 personId)
{
var service = new PhotoService();
var photo = service.SelectPrimaryPhoto(personId);
if (photo == null)
return Request.CreateResponse(HttpStatusCode.NoContent);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
var content = new MultipartContent();
content.Add(new ObjectContent<Photo.Data>(photo, new JsonMediaTypeFormatter()));
content.Add(new StreamContent(photo.Image));
response.Content = content;
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
在客户端上,HttpResponseMessage.Content表示为StreamContent类型.如何以MultipartContent的形式访问它?客户端是WPF - 而不是Web浏览器.
首先,您需要添加对System.Net.Http.Formatting,的引用
那么您将可以访问扩展方法.ReadAsMultipartAsync()。
示例:
using System.Net.Http.Formatting;
// ...
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.PostAsyc("{send the request to api}");
var content = await response.Content.ReadAsMultipartAsync();
var stringContent = await content.Contents[0].ReadAsStringAsync();
var streamContent = await content.Contents[1].ReadAsStreamAsync();
Run Code Online (Sandbox Code Playgroud)