У меня есть Soap запрос HttpClient, который выглядит следующим образом:
var client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(300);
client.BaseAddress = new Uri(uri);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xop+xml"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password)));
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
Content = new StringContent(
string.Format(SoapEnvelope, xml),
Encoding.UTF8,
"application/xop+xml"
)
};
var response = client.SendAsync(request).Result;
var streamTask = response.Content.ReadAsStreamAsync().Result;
Когда я записываю в файл, он выглядит так:
---- - = _ Part_1186_-1390170025.1580219662117 Тип содержимого: application / xop + xml; кодировка = UTF-8; type = "text / xml"
018b838311-6ade-4699-9ab0-bfd9141e886b ------ = _ Part_1186_-1390170025.1580219662117 Content-Type: application / octet-stream Content-ID: <66da1482-c934-4c83-8cac-18e64c134757@dvo.service.dcs.pi.xxxxxxxxx.com> Content-Transfer-Encoding: двоичное
% PDF-1,3%
... // куча PDF-файлов ....
%% EOF
------ = _ Part_1186_-1390170025.1580219662117 -
PDF является вложением в ответе. Я предполагаю, что части файла, которые имеют ------=_Part_1186_-139017002
, означают, что это составной ответ, но из того, что я вижу, HttpResponseMessage
не поддерживает ReadAsMultipartAsync()
, как HttpWebResponse
.
У кого-нибудь есть решение просто получить доступ к вложению из потока?