https://www.tnblog.net/aojiancc2/article/details/3834
https://www.tnblog.net/aojiancc2/article/details/2874
以上三个链接内容可以解决收不到数据的问题。
.NET WEB API 定义
// POST: api/WorkOrder public string Post([FromBody]string value) { return value; }
测试Postman
这个正确收到数据
用下列函数发送json数据:value总是null 错误!!!
public string PostJsonToAPI() { string url = "http://localhost:11484/api/workorder"; string strJson = "{"employee":{ "name1":"Bill Gates", "age":62, "city":"Seattle" }}"; string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "post"; req.ContentType = "application /json"; byte[] data = Encoding.UTF8.GetBytes(strJson); req.ContentLength = data.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(data, 0, data.Length); reqStream.Close(); } HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); string status = resp.StatusDescription; //HttpStatusCode statusCode = resp.StatusCode; Stream stream = resp.GetResponseStream(); //获取响应内容 using (StreamReader sr = new StreamReader(stream, Encoding.UTF8)) { result = sr.ReadToEnd(); } return result; }
定义WEB API 如下:
public string Post([FromBody] Object value) { return value.ToString(); }
正确接收PostJsonToAPI()发来的数据。
有地方说明原因:[FromBody] 参数不能是基本的数据类型(如byte、int、bool、DateTime、string等)。