private static string WebRequestPostData(string url, string postData)
{
System.Net.WebRequest req = System.Net.WebRequest.Create(url);
req.ContentType = "text/xml";
req.Method = "POST";
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(postData);
req.ContentLength = bytes.Length;
using (Stream os = req.GetRequestStream())
{
os.Write(bytes, 0, bytes.Length);
}
using (System.Net.WebResponse resp = req.GetResponse())
{
if (resp == null) return null;
using (System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream()))
{
return sr.ReadToEnd().Trim();
}
}
}
Существует гораздо более простое решение для доступа к телу в виде строки, которую я нигде не видел в документации:
let body = res.text()
Поскольку я нашел этот вопрос, столкнувшись с той же проблемой (и документация Angular не обновляется на сегодняшний день), теперь вы можете использовать:
let blob = new Blob([response.arrayBuffer()], { type: contentType });
Другой обходной путь, если вы по какой-то причине находитесь на старой Версия Angular 2:
let blob = new Blob([(<any> response)._body], { type: contentType });
Я не вижу других решений до слияния следующего PR:
В то время как у вас есть ошибка компиляции, поле может использоваться во время выполнения ...