Я не могу найти способ правильно обрабатывать составные / смешанные ответы от службы REST. Приложение представляет собой веб-страницу ASP. Net в c#, использующую. Net Framework 4.8, вызывающую бэкэнд уровня сервиса SAP Hana.
Пример ответа, который я получаю от сервера:
HTTP/1.1 202 Accepted
Date: Tue, 04 Aug 2020 08:01:08 GMT
Server: Apache/2.4.34 (Unix)
DataServiceVersion: 3.0
Content-Length: 403
Content-Type: multipart/mixed;boundary=batchresponse_Iwe0IXB4-c5Xl-DcVn-S0rF-BFqXAdB6AFU8
Vary: Accept-Encoding
--batchresponse_Iwe0IXB4-c5Xl-DcVn-S0rF-BFqXAdB6AFU8
Content-Type: application/http
Content-Transfer-Encoding: binary
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=utf-8
Content-Length: 129
{
"error" : {
"code" : -1,
"message" : {
"lang" : "en-us",
"value" : "BadFormat"
}
}
}
--batchresponse_Iwe0IXB4-c5Xl-DcVn-S0rF-BFqXAdB6AFU8--
( Я намеренно отправляю запрос, который возвращает ошибку из службы Rest , и я хочу проанализировать содержимое ошибки json из этого составного ответа. То же самое, что я будет работать с ответами на правильный запрос, которые также возвращают многочастный смешанный контент.)
Я загрузил библиотеку Microsoft.As pNet .WebApi.Client, которая должна обрабатывать Multipart.
Я использую следующий код:
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
...
HttpClient client;
// initialized here
...
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "$batch");
// Here I build the multipart-mixed request using MultipartContent and StringContent objects, which works ok
...
var response = client.SendAsync(request).Result;
response.EnsureSuccessStatusCode();
if (response.Content.IsMimeMultipartContent())
{
var multipart = response.Content.ReadAsMultipartAsync().Result; // this throws the exception: Unexpected end of MIME multipart stream. MIME multipart message is not complete.
}
Я не понимаю, почему возникает это исключение и как его избежать.
ОБНОВЛЕНИЕ (5 августа 2020 г.): Кто-то все еще может захотеть ответить для справки в будущем, в любом случае я написал свой собственный составной / смешанный синтаксический анализатор.