From d317c5b0b696d8f6e09a8e18fb505e4dfc9d2c7b Mon Sep 17 00:00:00 2001 From: wanggaofeng <15601716045@163.com> Date: Sun, 7 Jan 2024 21:19:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NormalHttpClientTest.cs | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/HttpClientStudy.UnitTest/NormalHttpClientTest.cs b/HttpClientStudy.UnitTest/NormalHttpClientTest.cs index c870b42..47ba517 100644 --- a/HttpClientStudy.UnitTest/NormalHttpClientTest.cs +++ b/HttpClientStudy.UnitTest/NormalHttpClientTest.cs @@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Mvc; using System.Text.Json; using System.Security.Authentication.ExtendedProtection; using Newtonsoft.Json.Linq; +using System.Text.Json.Serialization.Metadata; namespace HttpClientStudy.UnitTest { @@ -414,9 +415,91 @@ namespace HttpClientStudy.UnitTest #endregion #region DELETE 请求 + + [Fact] + public async Task Delete_Test() + { + HttpClient httpClient = new HttpClient() + { + BaseAddress = new Uri(TestConfig.WebApiBaseUrl), + }; + + var para_id = 2; + + //发POST请求(URL传参) + var responseMessage = await httpClient.DeleteAsync($"/api/Normal/Delete?Id={para_id}"); + + //确保响应正常 + responseMessage.EnsureSuccessStatusCode(); + + + Assert.NotNull(responseMessage); + Assert.True(responseMessage.IsSuccessStatusCode); + + var result = await responseMessage.Content.ReadFromJsonAsync>(); + Assert.IsType>(result); + Assert.Equal(1, result.Code); + + Assert.Equal(para_id, result.Data); + } + + [Fact] + public async Task Delete2_Test() + { + HttpClient httpClient = new HttpClient() + { + BaseAddress = new Uri(TestConfig.WebApiBaseUrl), + }; + + //Delete 默认不使用请求体,如果使用的话,需要Content配合 RequestMessage + + + var account = new Account() { Id = 2, Name = "小明", Password = "123456", Role = "Admin" }; + + var requestMessage = new HttpRequestMessage(HttpMethod.Delete, "/api/Normal/DeleteForJsonData"); + //requestMessage.Content = JsonContent.Create(account); + + //也可以下面的,极少有使用(可自定义JsonSerializerOptions) + //requestMessage.Content = JsonContent.Create(account,JsonTypeInfo.CreateJsonTypeInfo( JsonSerializerOptions.Default),new System.Net.Http.Headers.MediaTypeHeaderValue("application/json","utf-8")); + + //发POST请求(URL传参) + var responseMessage = await httpClient.SendAsync(requestMessage); + + //确保响应正常 + responseMessage.EnsureSuccessStatusCode(); + + + Assert.NotNull(responseMessage); + Assert.True(responseMessage.IsSuccessStatusCode); + + var result = await responseMessage.Content.ReadFromJsonAsync>(); + Assert.IsType>(result); + Assert.Equal(1, result.Code); + } #endregion #region OPTIONS 请求 + [Fact] + public async Task OPTIONS_Test() + { + HttpClient httpClient = new HttpClient() + { + BaseAddress = new Uri(TestConfig.WebApiBaseUrl), + }; + + var requestMessage = new HttpRequestMessage(HttpMethod.Options, "/api/Normal/OptionsSimple"); + + //响应 + var responseMessage = await httpClient.SendAsync(requestMessage); + + //响应正常 + Assert.True(responseMessage.IsSuccessStatusCode); + Assert.NotNull(responseMessage); + + var result = await responseMessage.Content.ReadFromJsonAsync>(); + Assert.IsType>(result); + Assert.Equal(1, result?.Code); + } #endregion #region PATCH 请求