Ich möchte eine komplexe Antwort für Anforderungen in Web-API zurückgegeben haben. Zum Beispiel möchte ich einen Stream mit einem komplexen Objekt zurückgeben. Ich versuchte es mit MultipartFormDataContent zu tun:MultipartContent-Antwort in Web-API
public static HttpResponseMessage GetMultipartResponse<T>(T responseData, Stream streamToReturn)
{
return new HttpResponseMessage
{
Content = new MultipartContent
{
new StreamContent(streamToReturn),
new ObjectContent<T>(responseData, new JsonMediaTypeFormatter())
}
};
}
ich ein normales HttpResponseMessage
auf Server-Seite haben. Ich kann durch Debugger sehen, wie meine Web-API-Methode, um diese Antwort zurückgibt, aber auf der Client-Seite habe ich einen Fehler bekam:
StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Pragma: no-cache
X-SourceFiles: =?UTF-8?B?YzpcdXNlcnNccnVzdGFtX3NhbGFraHV0ZGlub3ZcZG9jdW1lbnRzXHZpc3VhbCBzdHVkaW8gMjAxM1xQcm9qZWN0c1xGaWxlU2VydmljZUFQSVxGaWxlU2VydmljZUFQSVxhcGlcZ2V0?=
Cache-Control: no-cache
Date: Tue, 26 Jul 2016 08:30:22 GMT
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Content-Length: 1444
Content-Type: application/json; charset=utf-8
Expires: -1
}
Es gibt keine anderen Ausnahmen auf Client- oder Server-Seite und ich kann nicht etwas bekommen weitere Informationen mit wiederum auf Fehler Detail:
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
UPDATE: Try Antwort auf Client-Seite lesen mit:
var result = await response.Content.ReadAsMultipartAsync();
Und habe diese Ausnahme:
Invalid 'HttpContent' instance provided. It does not have a content type header starting with 'multipart/'.
Wohin gehe ich falsch?
UPDATE 2: Ich habe normale Antwort auf der Seite Server:
StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.MultipartContent, Headers:
{
Content-Type: multipart/multipart; boundary="3e6d3573-9031-41a7-b7f4-d1421bc1451d"
}