.NET 5,使用 API 创建 WebService

.NET 5, Create WebService with consume an API

提问人:Ayoub Bouizou 提问时间:11/16/2023 最后编辑:Brian Tompsett - 汤莱恩Ayoub Bouizou 更新时间:11/17/2023 访问量:25

问:

我必须在 URL“myurl/api/shipment”中发布数据

我创建了一个简单的 .NET 5 Webapi 项目来大摇大摆地发布数据。 在项目上创建的组件包括:模型(shipment.cs),服务(ApiService.cs)和控制器。 标头必须包含两个参数

(“内容类型:text/html”, “api_key : ”)

注意:API 密钥是在 get 方法中通过使用带有参数(“Content-Type”、“text/html”、“username”、“CIH CARTES”、“password”、“*************”)的 URL “https://portail.ctm-messagerie.com/api/token” 生成的,它适用于我的项目

这是我的服务(ApiService.cs):

//Get method ("Content-Type", "text/html","username", "CIH CARTES","password", "*************")
public async Task<string> GetTokenAsync()
{
    var url = "url/api/token";
    var content = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("Content-Type", "text/html"),
        new KeyValuePair<string, string>("username", "CIH CARTES"),
        new KeyValuePair<string, string>("password", "**********")
    });

    var response = await _httpClient.PostAsync(url, content);

    if (response.IsSuccessStatusCode)
    {
        var token = await response.Content.ReadAsStringAsync();
        return token;
    }

    return null;
}
//Post method 
public async Task<string> PostShipmentAsync(Shipment shipment, string token)
{
    var url = "myurl/api/shipment";

    var jsonContent = JsonSerializer.Serialize(shipment);

    var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");

    _httpClient.DefaultRequestHeaders.Clear();
    _httpClient.DefaultRequestHeaders.Add("api_key", token);//string token

    var response = await _httpClient.PostAsync(url, content);

    if (response.IsSuccessStatusCode)
    {
        var result = await response.Content.ReadAsStringAsync();
        return result;
    }

    return null;
}

这是我的控制器:

enter image description here

我在 Google Chrome 中使用 RESTED 扩展程序发布数据有效!

enter image description here

但是在我的项目中测试的 swagger 中,我收到了以下消息:

enter image description here

预期的返回是收到以下消息:

enter image description here

C# .NET Web 服务

答: 暂无答案