簡體   English   中英

如何從HttpResponseMessage讀取MultipartContent?

[英]How to read MultipartContent from HttpResponseMessage?

我有以下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;
    }
}

在客戶端上,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(); 

您可以使用HttpContentMultipartExtensions中的幫助器方法來讀取客戶端上的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM