Files
emall-api/TestApp/Program.cs
2025-10-16 15:21:52 +08:00

61 lines
2.6 KiB
C#

using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
namespace TestApp
{
class Program
{
static async Task Main(string[] args)
{
var httpClient = new HttpClient();
var baseUrl = "http://localhost:5003/api/v1";
// 1. 先尝试登录现有用户
Console.WriteLine("尝试登录现有用户...");
var loginData = new
{
usernameOrEmail = "newuser@example.com",
password = "newpass123"
};
var loginContent = new StringContent(JsonSerializer.Serialize(loginData), Encoding.UTF8, "application/json");
var loginResponse = await httpClient.PostAsync($"{baseUrl}/auth/login", loginContent);
if (loginResponse.IsSuccessStatusCode)
{
var loginResponseContent = await loginResponse.Content.ReadAsStringAsync();
Console.WriteLine($"登录成功: {loginResponseContent}");
// 解析响应获取token
using (JsonDocument doc = JsonDocument.Parse(loginResponseContent))
{
var root = doc.RootElement;
if (root.TryGetProperty("data", out var dataElement) &&
dataElement.TryGetProperty("token", out var tokenElement))
{
var token = tokenElement.GetString();
// 2. 使用获取的token调用Mails接口
Console.WriteLine("\n使用token调用Mails接口...");
httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
var mailsResponse = await httpClient.GetAsync($"{baseUrl}/Mails?PageIndex=1&PageSize=20");
var mailsResponseContent = await mailsResponse.Content.ReadAsStringAsync();
Console.WriteLine($"Mails接口响应状态: {mailsResponse.StatusCode}");
Console.WriteLine($"Mails接口响应内容: {mailsResponseContent}");
}
}
}
else
{
var loginResponseContent = await loginResponse.Content.ReadAsStringAsync();
Console.WriteLine($"登录失败: {loginResponse.StatusCode}");
Console.WriteLine($"响应内容: {loginResponseContent}");
}
}
}
}