在.net core 5应用程序中调用一个外部api



我为公众假期创建了一个web API应用程序。

这是类别Pho

public class Pho
{
public DateTime date { get; set; }
public string localName { get; set; }
public string countryCode { get; set; }
}

这里的代码我试图调用API

using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://date.nager.at/api/v3/PublicHolidays/2017/FR");
using (HttpResponseMessage response = await client.GetAsync(""))
{
var responseContent = response.Content.ReadAsStringAsync().Result;
response.EnsureSuccessStatusCode();
return Ok(responseContent);
}
}

它不起作用,我不知道如何修复

尝试修复uri

client.BaseAddress = new Uri("https://date.nager.at"); 
using (HttpResponseMessage response = await client.GetAsync("/api/v3/PublicHolidays/2017/FR"))
{
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
return Ok(responseContent);
}
return BadRequest("status code "+response.StatusCode.ToString());   
}           

您的代码不起作用的可能原因之一是您试图在客户端尚未初始化时设置BaseAddress。

要在初始化HttpClient时添加BaseAddress,您应该这样做:

var client = new HttpClient
{
BaseAddress = new Uri("https://date.nager.at/api/v3/PublicHolidays/2017/FR")
};

using (HttpResponseMessage response = await client.GetAsync(client.BaseAddress))
{
var responseContent = response.Content.ReadAsStringAsync().Result;
response.EnsureSuccessStatusCode();
return Ok(responseContent);
}

最新更新