如何将外部网站的数据转换为.NET核心中的Web API?

时间:2018-06-18 14:22:47

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

我正在学习使用.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";
        }
    }
}

我正在使用此网站上的数据作为我的网络API https://www.fortnitetracker.com/

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

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

要使用API​​密钥,您需要将其作为标题与您的请求一起传递。

我真的不明白这句话。

此外,我正在使用Ionic 3进行编程,并且我使用了这个api链接和HTTP get,但由于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;
        }

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:2)

修复它感谢您的支持!

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