Skip to content
Discussion options

You must be logged in to vote

Refit does not parse multipart/related responses for you. There is no built-in multipart-response reader; built-in raw types on the response side are Stream, string, HttpResponseMessage and HttpContent.

Approach:

  • Declare the method to return the raw response and parse the parts yourself:
[Get("/resource")]
[Headers("Accept: multipart/related")]
Task<HttpResponseMessage> GetParts();

Then read it with MultipartMemoryStreamProvider from System.Net.Http:

using var resp = await api.GetParts();
var multipart = await resp.Content.ReadAsMultipartAsync();
foreach (var part in multipart.Contents)
{
    var bytes = await part.ReadAsByteArrayAsync();
    // inspect part.Headers for content-type / c…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by glennawatson
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants