GetStreamAsync
GetStreamAsync у
HttpClient
возвращает Stream. В примерах
текст читают через StreamReader
из заглушки без сети.
Синтаксис
Stream stream = await client.GetStreamAsync("http://abcde.example/");
Пример
Давайте прочитать поток целиком:
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
class Stub : HttpMessageHandler
{
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent("abcde");
return Task.FromResult(response);
}
}
class Program
{
static async Task Main()
{
using HttpClient client = new HttpClient(new Stub());
using Stream stream = await client.GetStreamAsync(
"http://abcde.example/");
using StreamReader reader = new StreamReader(stream);
string res = await reader.ReadToEndAsync();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте прочитать другой путь:
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
class Stub : HttpMessageHandler
{
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent("abcde");
return Task.FromResult(response);
}
}
class Program
{
static async Task Main()
{
using HttpClient client = new HttpClient(new Stub());
using Stream stream = await client.GetStreamAsync(
"http://abcde.example/abcde");
using StreamReader reader = new StreamReader(stream);
string res = await reader.ReadToEndAsync();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте проверить длину прочитанного текста:
using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
class Stub : HttpMessageHandler
{
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StringContent("abcde");
return Task.FromResult(response);
}
}
class Program
{
static async Task Main()
{
using HttpClient client = new HttpClient(new Stub());
using Stream stream = await client.GetStreamAsync(
"http://abcde.example/");
using StreamReader reader = new StreamReader(stream);
string text = await reader.ReadToEndAsync();
int res = text.Length;
Console.WriteLine(res);
}
}
Результат выполнения кода:
5
Смотрите также
-
GetStringAsync,
строка сразу -
GetByteArrayAsync,
массив байт -
GetAsync,
ответ целиком -
HttpClient,
класс клиента