Нет необходимости использовать async / await, .Result
делает то же самое, что и await.
Аналогичная ошибка в вашем коде, stream.ToString()
только конвертирует сам объект потока в строку, но несодержать содержимое.
Я предлагаю вам использовать массив байтов [] вместо потока (я проверил с потоком, но сохраненный файл .pdf пуст, даже если длина содержимого правильная).
Попробуйте использовать массив byte [], как показано ниже, и он работает на моей стороне:
using (var client = new HttpClient())
{
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("apikey","xxxxx"),
new KeyValuePair<string, string>("value", "the url")
});
var result = client.PostAsync("http://api.html2pdfrocket.com/pdf", content).Result;
if (result.IsSuccessStatusCode)
{
// change the path as per your need
System.IO.File.WriteAllBytes(@"d:\temp\0618.pdf", result.Content.ReadAsByteArrayAsync().Result);
}
}