|
|
|
@ -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<BaseResult<int>>();
|
|
|
|
|
Assert.IsType<BaseResult<int>>(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<Account>( 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<BaseResult<Account>>();
|
|
|
|
|
Assert.IsType<BaseResult<Account>>(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<BaseResult<string>>();
|
|
|
|
|
Assert.IsType<BaseResult<string>>(result);
|
|
|
|
|
Assert.Equal(1, result?.Code);
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region PATCH 请求
|
|
|
|
|