asp.net-core - IIS Express 崩溃 asp.net 3.1 utf8 编码
问题描述
我一直在 asp.net mvc 中使用此函数从 API 获取数据,但在 asp.net core 中它崩溃了。我相信这可能是与.net核心中的utf8有关的问题有没有其他人对此有问题我只是得到一个-1的iis express错误并且代码爆炸了
public async Task<List<Stock>> GetStockFromApi()
{
List<Stock> _result = new List<Stock>();
var uri = new Uri(string.Format(Constants.GetALlStock, string.Empty));
var response = await _httpClient.GetAsync(uri);
if (response.IsSuccessStatusCode) {
var byteArray = await response.Content.ReadAsByteArrayAsync();
var content = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);
_result = JsonConvert.DeserializeObject<List<Stock>>(content);
}
return _result.ToList();
}
解决方案
确保您的 api 结果 ( byteArray
) 在您的情况下是正确的。
当我在全新的 asp.net core 3.1 mvc 项目中使用您的代码时,它运行良好:
1.将Microsoft.AspNetCore.Mvc.NewtonsoftJson
包从PMC添加到项目
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
2.在startup.cs中注册
services.AddControllersWithViews().AddNewtonsoftJson();
3.测试动作:
public async Task<List<Stock>> GetStockFromApi()
{
List<Stock> _result = new List<Stock>();
var uri = new Uri("https://localhost:44321/home/GetAllStock");
using (var client = new HttpClient())
{
var response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var byteArray = await response.Content.ReadAsByteArrayAsync();
var content = Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);
_result = JsonConvert.DeserializeObject<List<Stock>>(content);
}
return _result.ToList();
}
}
public ActionResult<List<Stock>> GetAllStock()
{
var list = new List<Stock>()
{
new Stock()
{
Id = 1,
Name="hello"
},
new Stock()
{
Id = 2,
Name="wrold"
},
};
return Ok(list);
}
推荐阅读
- docker - Docker 共享卷创建和附加问题
- java - 使用 DecimalFormat 将双数截断到小数点后两位:API 的使用记录为 @since 1.6+ 错误
- spring - 带有少量集成测试的 @SpyBean 无法正常工作
- tensorflow - tensorflow.data.Dataset repeat(count=None) 方法是如何工作的
- conways-game-of-life - IndexError:康威人生游戏教程的字符串索引超出范围
- python-3.6 - 在另一个元组列表中搜索元组不适用于“in”条件
- amazon-ec2 - AWS 上的 JMeter 主从设置
- node.js - NodeJS 和 body-parser
- amazon-web-services - 缺少 aws-Vault 凭据
- c - _CRT_SECURE_NO_WARNINGS 实际上是什么意思?