首页 > 解决方案 > 如何从客户端访问发布的服务器 json 数据

问题描述

我正在使用 net 2.1 和 angular 6 编写我的第一个应用程序。我可以使用 C# 在 Visual Studio 的 iis express 网页上发布来自 net 2.1 的 json 数据。

我能够将数据从前端 angular/typscript 发布到服务器。我对数据执行计算并将 json 结果发布在 iis express 服务器网页上。如何使用角度获取该数据?

这是我的 Angular api 服务文件,允许我发布到服务器

export class ApiService {

private handleError: HandleError;

constructor(
 private http: HttpClient,
 httpErrorHandler: HttpErrorHandler) {
 this.handleError = httpErrorHandler.createHandleError('HeroesService');
}

stock: StockComponent ;

stockURL = 'https://localhost:44310/api/stock'

/** POST: */
postStock (stock) {
  console.log('stock is ', stock);
  this.http.post(this.stockURL, stock).subscribe(res => {
    console.log(res)
})

}
 getBuySellData(){
   return this.http.get('https://localhost:44310/api/stock');
}

 }

这是组件文件:

  export class StockComponent {
stock = {}
constructor(private api: ApiService){

}

post(stock){
  console.log('this is the stock ', stock)
    this.api.postStock(stock)
}

这是视觉工作室中控制器的一部分

    [HttpPost]
    public async Task<IActionResult> Post([FromBody]Models.Stock stock)
    {
        _context.Stocks.Add(stock);
        await _context.SaveChangesAsync();
        return Ok(stock);
    }

    [HttpGet]
    public IEnumerable<DateCloseBuySell> GetQuote()
    {
        string responseString = string.Empty;

标签: c#angular.net-core

解决方案


我在 Xamarin.Forms 中遇到了类似的问题。

为了解决它,我做了类似的事情:

private const string Url = "https://localhost:44310/api/stock";

private HttpClient _client = new HttpClient();

protected async void OnGetList()
{
    if (CrossConnectivity.Current.IsConnected)
    {
        try 
        {
            var content = await _client.GetStringAsync(Url);

            var list = JsonConvert.DeserializeObject<List<Model>>(content);
        } 
        catch (Exception e)
        {
            Debug.WriteLine("", e);
        }
    }
}

推荐阅读