我正在市場(chǎng)和金融新聞工作app.I從https://www.marketaux.com/
獲取API。我正在嘗試將網(wǎng)站上的新聞顯示在主頁上。我在ASP.NET Core web應(yīng)用程序文件中創(chuàng)建了一個(gè)模型文件和控制器。在控制器文件中,我在response.data
部分得到一個(gè)錯(cuò)誤,因?yàn)樗娘@示響應(yīng)沒有數(shù)據(jù)對(duì)象,而當(dāng)我打印response.Content
的輸出時(shí),它有數(shù)據(jù)對(duì)象。你能告訴我如何解決這個(gè)問題,并從API訪問數(shù)據(jù),以便我可以在主頁上顯示它嗎?
Controller class:
using System.Runtime.CompilerServices;
using Azure.Core;
using MarketNews.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using MySql.Data.MySqlClient;
using MySqlX.XDevAPI;
using Newtonsoft.Json;
using RestSharp;
namespace MarketNews.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class NewsController : ControllerBase
{
[HttpGet]
public News[] GetNews()
{
List<News> news = new List<News>();
RestClient client = new RestClient("https://api.marketaux.com/v1/news/all");
// client.Timeout = -1;
RestRequest request = new RestRequest("News",Method.Get);
request.AddQueryParameter("api_token", "qIWtsblpK93oeo23o87egUGBoVmVaqkl4fdHRTEc");
request.AddQueryParameter("symbols", "aapl,amzn");
request.AddQueryParameter("limit", "50");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
if (response != null)
{
foreach (var article in response.data)
{
news.Add(new News
{
Title = article.title,
Description = article.description,
Url = article.url,
Url_Image = article.image_url,
Published_At = article.published_at
});
}
}
return news.ToArray();
}
}
}
Model class
namespace MarketNews.Models
{
public class News
{
public string Title;
public string Description;
public string Url;
public string Url_Image;
public DateTime Published_At;
}
}
我想從API獲取數(shù)據(jù)并將其顯示在主頁上。我使用RestClient
和RestRequest
獲取響應(yīng),然后從響應(yīng)中獲取響應(yīng)。當(dāng)response.Content
打印到控制臺(tái)時(shí),我得到了輸出,它正在工作,它給了我一個(gè)json文件作為輸出。在foreach循環(huán)中,當(dāng)我試圖將響應(yīng)數(shù)據(jù)設(shè)置為我創(chuàng)建的模型數(shù)據(jù)時(shí),它顯示response.data
不存在。
我想知道這里有什么問題,或者有沒有其他方法可以從API獲取數(shù)據(jù)?
Api:網(wǎng)站鏈接
從RestSharp文檔中,
Execute()
方法確實(shí)支持泛型類型。請(qǐng)注意,此方法已棄用。您應(yīng)尋找以下方法:
并改進(jìn)API操作以支持異步操作。
從鏈接中共享的響應(yīng)數(shù)據(jù)中,您需要一個(gè)
Root
對(duì)象,該對(duì)象包含data
屬性和List<New>
類型。Root
。接下來用response.Data.Data
從響應(yīng)中提取data
屬性。