diff --git a/HttpClientStudy.Service/AccountService.cs b/HttpClientStudy.Service/AccountService.cs index edd69aa..3f507db 100644 --- a/HttpClientStudy.Service/AccountService.cs +++ b/HttpClientStudy.Service/AccountService.cs @@ -23,7 +23,7 @@ namespace HttpClientStudy.Service new Account() { Id=10, Name="管理员10", Password="123456", Role="Admin"}, new Account() { Id=11, Name="开发01", Password="123456", Role="Dev"}, - new Account() { Id=12, Name="管理员01", Password="123456", Role="Dev"}, + new Account() { Id=12, Name="开发01", Password="123456", Role="Dev"}, new Account() { Id=13, Name="开发03", Password="123456", Role="Dev"}, new Account() { Id=14, Name="开发04", Password="123456", Role="Dev"}, new Account() { Id=15, Name="开发05", Password="123456", Role="Dev"}, diff --git a/HttpClientStudy.UnitTest/NormalHttpClientTest.cs b/HttpClientStudy.UnitTest/NormalHttpClientTest.cs index be914a6..aff3802 100644 --- a/HttpClientStudy.UnitTest/NormalHttpClientTest.cs +++ b/HttpClientStudy.UnitTest/NormalHttpClientTest.cs @@ -43,6 +43,11 @@ namespace HttpClientStudy.UnitTest Assert.NotNull(result.Data); } + /// + /// GET 请求 + /// (默认参数方式:url传参) + /// + /// [Fact] public async Task GetAccount_Id_Test() { @@ -51,28 +56,40 @@ namespace HttpClientStudy.UnitTest BaseAddress = new Uri(TestConfig.WebApiBaseUrl), }; - var responseMessage = await httpClient.GetAsync("/api/Normal/GetAccount"); + var responseMessage = await httpClient.GetAsync("/api/Normal/GetAccount?Id=2"); responseMessage.EnsureSuccessStatusCode(); Assert.NotNull(responseMessage); Assert.True(responseMessage.IsSuccessStatusCode); - var result = await responseMessage.Content.ReadFromJsonAsync>>(); - Assert.IsType>>(result); + var result = await responseMessage.Content.ReadFromJsonAsync>(); + Assert.IsType>(result); Assert.Equal(1, result.Code); - Assert.NotNull(result.Data); + Assert.Equal(2, result.Data?.Id); } + /// + /// GET 请求 + /// (中文参数:现在浏览器直接支持,为最大兼容老旧浏览器使用url编码) + /// + /// [Fact] - public async Task GetAccount_Name_Test() + public async Task GetAccountByName_Test() { HttpClient httpClient = new HttpClient() { BaseAddress = new Uri(TestConfig.WebApiBaseUrl), }; - var responseMessage = await httpClient.GetAsync("/api/Normal/GetAccount"); + var ChineseName = System.Net.WebUtility.UrlEncode("管理员01"); + var ChineseName2 = System.Net.WebUtility.UrlEncode("管理员02"); + + //现在浏览器直接支持中文参数 + //var responseMessage = await httpClient.GetAsync("/api/Normal/GetAccountByName?ChineseName=管理员01&ChineseName2=管理员02"); + + //兼容老浏览器写法 + var responseMessage = await httpClient.GetAsync($"/api/Normal/GetAccountByName?ChineseName={ChineseName}&ChineseName2={ChineseName2}"); responseMessage.EnsureSuccessStatusCode(); @@ -82,7 +99,7 @@ namespace HttpClientStudy.UnitTest var result = await responseMessage.Content.ReadFromJsonAsync>>(); Assert.IsType>>(result); Assert.Equal(1, result.Code); - Assert.NotNull(result.Data); + Assert.Equal(2, result.Data?.Count); } [Fact] @@ -107,7 +124,7 @@ namespace HttpClientStudy.UnitTest } [Fact] - public async Task GetAccount_Service_Test() + public async Task GetAccountByService_Test() { HttpClient httpClient = new HttpClient() { diff --git a/HttpClientStudy.WebApp/Controllers/NormalController.cs b/HttpClientStudy.WebApp/Controllers/NormalController.cs index 03d84c6..ed90aad 100644 --- a/HttpClientStudy.WebApp/Controllers/NormalController.cs +++ b/HttpClientStudy.WebApp/Controllers/NormalController.cs @@ -41,7 +41,7 @@ namespace HttpClientStudy.WebApp.Controllers /// /// 查询账号 - /// (默认方式参数) + /// (默认方式参数:URL传参) /// /// [HttpGet] @@ -85,6 +85,18 @@ namespace HttpClientStudy.WebApp.Controllers return Ok(result); } + /// + /// 查询账号 + /// (请求头参数) + /// + /// + [HttpGet] + public IActionResult GetAccountFromHeader([FromHeader] Account account) + { + var result = BaseResultUtil.Success(account); + return Ok(result); + } + /// /// 查询账号 /// (服务注入参数)