如何在C#中调用跨域API

问题描述 投票:0回答:1

我需要使用C#调用不同服务器的API。 我正在使用以下方法

using (HttpClient client = new HttpClient())
{
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "tolen");
    var result = await client.GetStringAsync("url");
    return JsonConvert.DeserializeObject(result);
}

但它总是给

403 禁止

我询问了这个 API 的开发者,他建议我还需要发送 预检请求

c# cors preflight
1个回答
0
投票

如果您的服务代码是用 C# 编写的,那么您可以在 api 方法部分启用跨域访问,如下所示

        [EnableCors(origins: "*", headers: "*", methods: "*")]
        public string Get()
        {

上面的代码为所有外部域启用了 cors,但您可以通过这种方式仅指定您自己的域

[EnableCors(origins: "http://yourdomain.com", headers: "*", methods: "*")]

有用的两个链接https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api https://msdn.microsoft.com/en-us/magazine/dn532203.aspx

© www.soinside.com 2019 - 2024. All rights reserved.