学习WebApi时间较短,在一个项目中需要向WebApi发送数据,但是使用C#调用WebApi(Post)时总返回400错误,找了很久,总以为是调用方法有问题,后来发现其实是WebApi中,Post方法参数的问题。下面是测试代码:

实体:

public class Standard{public string Name { get; set; }public int Age { get; set; }public string Gender { get; set; }public string Hobby { get; set; }}

方法:

private void Send()
{Standard s = new Standard{Name = "tt",Age = 24,Hobby = "test",Gender = "1"};string json = JsonConvert.SerializeObject(s);string url = "http://localhost:2374/api/values";HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.KeepAlive = false;request.Method = "POST";request.ContentType = "application/json";try{//GET方法没有写入流这一部分using (StreamWriter writer = new StreamWriter(request.GetRequestStream())){writer.Write(json);}HttpWebResponse response = null;try{response = (HttpWebResponse)request.GetResponse();}catch (WebException e){response = (HttpWebResponse)e.Response;}}catch(Exception e){throw e;}
}

WebApi:

[HttpPost]
public async Task Post([FromBody] Standard value)
{//……
}

WebApi这里要注意两点:
1、参数需要加[FromBody]帽子,不然取不到值;
2、因为发送方法,发送的是一个经过json序列化的实体,所以Post方法的参数也必须是对应的实体,Post方法在接收到值时,会自动按参数类型反序列化。我之前这个参数写的是string类型,每次调用都返回400错误,提示解析时遇到意外字符,即“{”。

一个小错误,但是之前找了很久都没有人提,这里写个博客记录一下。

【WebApi】WebApi的Post方法的参数问题和C#调用WebApi返回400错误相关推荐

  1. PostMan发送请求参数带有路径特殊字符会返回400错误(与URL字符及URL编码值有关)

    目录 一.请求参数中携带URL字符返回400错误 二. 请求参数中携带URL字符返回400错误原因 三.URL字符及对应的URL编码值列表 四.请求参数中携带URL字符转成URL编码值 一.请求参数中 ...

  2. SpringBoot的GET请求参数包含[]等特殊符号,返回400状态码

    今天系统2.1版本上线时,忽然发现一个问题,通知公告模块中的一个文件不能下载了,而其他的是可以的,经过仔细的排查发现,是由于文件名中包含了英文的[],问题如下图: 原因分析 Tomcat的新版本中增加 ...

  3. 7 类与对象,方法和函数的定义和使用,返回值,权限修饰符 public default protected private(重点)

    文章目录 1 面向对象 1 面向对象概述 2 类与对象 2.1 概述 2.2 Java中类的定义万物皆对象. 2.3Java中对象的定义和使用 3 方法和函数的定义和使用 3.1 什么是方法,函数 3 ...

  4. c#中WepAPI(post/get)控制器方法创建和httpclient调用webAPI实例

    一:WebAPI创建 using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; ...

  5. WebApi 的CRUD 的方法的应用

    一.最近一直在忙于开发公司的新的项目和搭建公司的框架,也好久没有写博客了.对于RaidDevelopmentFramework 我有着自己的见解在应用到实际的框架中确实挺好用的,但是还是存在一部分的问 ...

  6. 【转】一个ASP.NET MVC中ajax调用WebApi返回500 Internal Server Error的调错方法。

    ASP.NET MVC 引入的WebApi自然且较好地满足了ajax的交互需求,但使用jQuery ajax调用WebApi返回500 Internal Server Error时却不太好查找错误.在 ...

  7. C# WebApi Xml序列化问题解决方法:“ObjectContent`1”类型未能序列化内容类型“application/xml;charset=utf-8“的响应正文。...

    C# WebApi Xml序列化问题解决方法:"ObjectContent`1"类型未能序列化内容类型"application/xml;charset=utf-8&quo ...

  8. vs2013 调用webapi出错,请求的资源不支持 http 方法“GET”

    请求的资源不支持 http 方法"GET",vs2013 MVC WebApi 问题 解决 问题 在使用vs2013 MVC 项目时,调用webapi出现了"请求的资源不 ...

  9. c#使用HttpClient调用WebApi

    调用WebApi 可以利用HttpClient来进行Web Api的调用.由于WebA Api的调用本质上就是一次普通的发送请求与接收响应的过程, 所有HttpClient其实可以作为一般意义上发送H ...

最新文章

  1. 花了我一天一夜整理出的软件测试学习路线
  2. C# ASP.NET 开发指引简要
  3. perl6 中将 字符串 转成十六进制
  4. js判断是否以xxx结尾
  5. c# Point不能输入小数
  6. 《智能路由器开发指南》——2.6 参考资料
  7. 编辑器安卓手机版_手机上最专业的视频编辑器,内购版!
  8. 监控视频统一汇聚集中录像存储方案
  9. CodeMirror使用说明书
  10. scheme语言编写运行
  11. 外地新能源汽车迁入北京需要哪些条件?
  12. 《关键对话》要点整理
  13. 应用网易轻舟,德邦快递核心系统入选云原生应用十大优秀案例
  14. Laya商业级3d实战-06用户输入_u3dApi集成
  15. JSX 基本语法规则
  16. i5 1135G7和R5 5600H 选哪个好
  17. SAP Memory ABAP Memory超级详细解析
  18. SCAU 汇编实验三
  19. 元音音频时域频域特点 RGB文件三通道熵计算
  20. JS在数据类型前使用“+”的作用

热门文章

  1. 测试电池毫安软件,如何用电子负载来测试电池的容量
  2. background和background-image的区别
  3. 常见威胁建模框架分析与比较
  4. CSP-S模拟 环球巡演(hash表+贪心)
  5. 未明学院:透视投行生活,在投行打拼的人需要有多优秀?
  6. 报错 :DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `useFind
  7. HTML_01_基础
  8. 自如wi-fi管理密码_如何使您的Dotfile管理轻松自如
  9. C语言程序设计三大基本结构之循环结构
  10. The ONE携手郎朗:全球公益钢琴盛典传递快乐音乐教育