asp.net-mvc - IRestResponse返回内容mvc c#
问题描述
我已经构建了一个 API,它将参数发布到外部 URL 并得到了完美的工作如何返回我正在使用 asp.net MVC 核心 c# 的内容
这是我的审判
[HttpPost("post")]
public async Task<IActionResult> postuser(postDtos postdDtos)
{
var client = new RestClient("https://www.xxxx.com/post");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\n\t\"UserName\": \"" + postdDtos.UserName + "\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
return StatusCode(response.StatusCode != System.Net.HttpStatusCode.OK ? 400 : 201);
}
我需要将状态码 400: 201 更改为响应内容我如何才能实现它,尤其是我使用了 IActionResult 并且当我将其更改为 IRestResponse 时,API 不起作用
解决方案
- 首先,查看响应并将您的响应设为 DTO 类。
之后使用 NewtonSoft 或其他库反序列化响应,并以 JSON 形式返回。
[HttpPost("post")] public async Task<IActionResult> postuser(postDtos postdDtos) { var client = new RestClient("https://www.xxxx.com/post"); var request = new RestRequest(Method.POST); request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\n\t\"UserName\": \"" + postdDtos.UserName + "\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); var status = StatusCode(response.StatusCode != System.Net.HttpStatusCode.OK ? 400 : 201); var yourDto = JsonConvert.DeserializeObject<YourDTO>(response.Content); return Json(new {status = status , response = "Blech"}); }
推荐阅读
- sql-server - SSIS 错误:0xC002F210“查询太复杂。”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确
- php - php,MySQL:如何显示 SELECT COUNT WHERE 结果?
- arduino - 如何使用 Arduino 通过 POST 请求连接到学校 wifi?
- c# - 通过交替元素合并 2 个列表
- r - R:更高效地将数据框拆分为列表
- vuejs2 - vue-test-utils & jest:如何测试单个文件组件过滤器?
- java - 如何解决自动化代码中的错误?
- django - has_object_permission 未调用
- python - PySpark 特征向量允许 NULL 值
- python - Python 2.7 和 Appengine ő/ű 字符显示为“?”