c# - Web API Post 参数 Null
问题描述
我是 WEB API 的新手,我创建了一个 get 和一个 post 方法,get 正在工作,但是 post 中的参数返回 null。
请求的代码是
if (ModelState.IsValid)
{
var client = new RestClient(string.Format("{0}/api/order/createorder",Baseurl));
client.Timeout = -1;
var request = new RestRequest(Method.POST);
var test = JsonConvert.SerializeObject(order);
request.AddJsonBody(order);
IRestResponse response = client.Execute(request);
它指向以下方法
[HttpPost]
[Route("api/order/createorder")]
public HttpResponseMessage AddOrder([FromBody]IOrder order)
{
if(order== null)
{
var resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new StringContent("The order is a required parameter"),
ReasonPhrase = "Order not present"
};
throw new HttpResponseException(resp);
}
我已将其添加<requestLimits maxAllowedContentLength="4294967295" />
到网络配置中,但无济于事。
谁能指出我在请求中做错了什么?
干杯
解决方案
试试这个代码
var client = new RestClient(string.Format("{0}/api/order/createorder",Baseurl));
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json; charset=utf-8");
var body = JsonConvert.SerializeObject(order);
request.AddParameter("application/json; charset=utf-8", body, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var result = response.Content;
并且永远不要在动作参数中使用接口,因为动作需要创建一个对象,但是从接口是不可能的
[Route("~/api/order/createorder")]
public HttpResponseMessage AddOrder([FromBody] Order order)
推荐阅读
- java - 新手:apache-ignite-2.8.1 default-config.xml更改失败
- javascript - VueJS 中 GET 请求的异步性
- google-cloud-platform - 谷歌云静态网站不工作
- javascript - 如何返回数组并检查第一个非零值 - nodejs
- sql - 将结果分成 3 个部分
- javascript - React Native TypeError undefined is not a function('...data.map...'附近)
- vbscript - 如何声明变量类型 vbscript?
- ios - iOS 暗模式状态栏不适用于所有视图控制器
- chef-infra - 无法使用 Chef Tomcat 设置环境变量
- amazon-web-services - 如何使用 YAML 锚点/覆盖 Codedeploy 代码块?