SendAsync
SendAsync у
HttpClient
принимает HttpRequestMessage
с любым методом и адресом. Заглушка
отвечает 200 без сети.
Синтаксис
HttpResponseMessage response =
await client.SendAsync(request);
Пример
Давайте отправить GET на путь "abcde":
using System;
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());
var request = new HttpRequestMessage(
HttpMethod.Get,
"http://abcde.example/abcde");
HttpResponseMessage response = await client.SendAsync(request);
int res = (int)response.StatusCode;
Console.WriteLine(res);
}
}
Результат выполнения кода:
200
Пример
Давайте проверить метод сообщения:
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
class Stub : HttpMessageHandler
{
public static string LastMethod;
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
LastMethod = request.Method.Method;
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());
var request = new HttpRequestMessage(
HttpMethod.Get,
"http://abcde.example/abcde");
await client.SendAsync(request);
string res = Stub.LastMethod;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"GET"
Пример
Давайте прочитать тело ответа:
using System;
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());
var request = new HttpRequestMessage(
HttpMethod.Get,
"http://abcde.example/abcde");
HttpResponseMessage response = await client.SendAsync(request);
string res = await response.Content.ReadAsStringAsync();
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
GetAsync,
GET напрямую -
PostAsync,
POST напрямую -
CancelPendingRequests,
отмена запросов -
HttpClient,
класс клиента