【问题标题】:How to get data from external website into a web API in .NET core?如何从外部网站获取数据到 .NET Core 中的 Web API?
【发布时间】:2018-06-18 14:22:47
【问题描述】:

我正在学习使用 .NET 核心制作一个 web api,并且我遵循了这个文档。

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-2.1

我创建了一个新项目,这是我的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace FortniteAPI.Controllers
{
    [Route("api/[controller]")]
    public class ValuesController : Controller
    {
        // GET api/values
        [HttpGet]
        public string Get()
        {
            return "https://api.fortnitetracker.com/v1/profile/{platform}/{nickname}";
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }
    }
}

我正在将此网站的数据用于我的 Web API https://www.fortnitetracker.com/

API 链接需要两个参数,即平台和昵称。我使用了自己的信息,但是当我启动应用程序时,我看不到数据。

我还有一个标题键可以使用它,这在文档中显示。

要使用 API 密钥,您需要将其作为请求头传递。

我真的不明白这句话。

我也在 Ionic 3 中编程,我使用这个 api 链接和 HTTP 获取,但由于 CORS,它没有工作。这就是我使用 .NET 核心应用程序与客户端对话的原因。

有人能指出我正确的方向吗?

更新

[HttpGet]
        public string Get()
        {
            HttpClient http = new HttpClient();
            http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("APIKEY", header);
            var data = http.GetAsync(url).Result.Content.ReadAsStringAsync().Result;
            return data;
        }

【问题讨论】:

    标签: .net json asp.net-web-api ionic-framework


    【解决方案1】:

    感谢支持!

     [HttpGet]
            public string Get()
            {
                HttpClient http = new HttpClient();
                http.DefaultRequestHeaders.Add(schemename, header);
                var data = http.GetAsync(url).Result.Content.ReadAsStringAsync().Result;
                return data;
            }    
    

    【讨论】:

      【解决方案2】:

      请将此代码放入您的方法中,如果您需要更多信息,请告诉我。

      HttpClient http = new HttpClient();
      http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Your Oauth token");
      var data =  http.PostAsync("Your Url", new StringContent("Data", Encoding.UTF32, "text/xml")).Result.Content.ReadAsStringAsync().Result;
      
      //for calling get
      
      var data2=http.GetAsync("").Result.Content.ReadAsStringAsync().Result;
      

      【讨论】:

      • 请使用 httpClient 在标头中传递值
      • 嗨 Lavit,感谢您抽出宝贵时间!查看我的更新,我在浏览器中收到此错误 {"message":"No API key found in request"}
      • 是的,我明天可以接受答案,谢谢您的时间!
      • 有时间没问题 接受@Fearcoder 的答案
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多