using System; using System.Collections.Generic; using System.Linq; using System.Net.Http.Json; using System.Text; using System.Threading.Tasks; namespace HttpClientStudy.UnitTest { public class HttpClientTest { private readonly ITestOutputHelper _logger; public HttpClientTest(ITestOutputHelper outputHelper) { _logger = outputHelper; } #region Get请求中使用请求体:强烈不推荐这种方法 /// /// Get请求中使用请求体 /// 注意:服务器要设置(配置KestrelServerOptions AllowSynchronousIO值为true) /// /// [Fact] public async Task GetWithBody_Test() { HttpClient httpClient = new HttpClient(); var formData = new List> { new KeyValuePair("param1", "value1"), new KeyValuePair("param2", "value2") }; HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get,"http://localhost:5189/api/AdvancedGet/GetWithBody"); requestMessage.Content = new FormUrlEncodedContent(formData); var response = await httpClient.SendAsync(requestMessage); response.EnsureSuccessStatusCode(); var responseText = await response.Content.ReadAsStringAsync(); _logger.WriteLine(responseText); } /// /// Post模型绑定对比 /// /// [Fact] public async Task PostDemo_Test() { HttpClient httpClient = new HttpClient(); var formData = new List> { new KeyValuePair("param1", "value1"), new KeyValuePair("param2", "value2") }; HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "http://localhost:5189/api/AdvancedGet/PostDemo"); requestMessage.Content = new FormUrlEncodedContent(formData); var response = await httpClient.SendAsync(requestMessage); response.EnsureSuccessStatusCode(); var responseText = await response.Content.ReadAsStringAsync(); _logger.WriteLine(responseText); } #endregion } }