提问人:Ayoub Bouizou 提问时间:11/16/2023 最后编辑:Brian Tompsett - 汤莱恩Ayoub Bouizou 更新时间:11/17/2023 访问量:25
.NET 5,使用 API 创建 WebService
.NET 5, Create WebService with consume an API
问:
我必须在 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;
}
这是我的控制器:
我在 Google Chrome 中使用 RESTED 扩展程序发布数据有效!
但是在我的项目中测试的 swagger 中,我收到了以下消息:
预期的返回是收到以下消息:
答: 暂无答案
评论