@ohthatbaguk

Get и Post с использованием HttpClient в c#?

[Fact(DisplayName = "POST index.php?/api/v2/add_project when returns 200")]
        public async Task AddProject_WhenAddProject_ShouldReturnOK()
        {
            var client = Extensions.CreateHttpClient();
            
            var projectModel = AddProjectFactory.GetProjectModel();
            var json = JsonConvert.SerializeObject(projectModel);
            var data = new StringContent(json, Encoding.UTF8, "application/json");
            var requestMessage = new HttpRequestMessage(HttpMethod.Post, "index.php?/api/v2/add_project");
            
            var response = await client.PostAsync("index.php?/api/v2/add_project", data);

            var result = await response.Content.ReadAsStringAsync();
            _testOutputHelper.WriteLine(PrettyJson(result));
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }


Есть вот такой хард код, не могу понять, как мне сделать запросы через запросы более универсальные с помощью SendAsync?
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
@vabka Куратор тега C#
Токсичный шарпист
Через Send будет как-то так:
var httpClient = new HttpClient();
var req = new HttpRequestMessage
{
    RequestUri = new Uri("index.php?/api/v2/add_project"),
    Method = HttpMethod.Get, // Вот тут
    Content = new StringContent("{}", Encoding.UTF8, "application/json")
};
var response = httpClient.Send(req); // Можно и SendAsync использовать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Посмотрите в сторону библиотеки RestSharp (https://github.com/restsharp/RestSharp). Ощутимо упрощает эти операции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы