MVC4 web API 如何获取Post过来的json数据?

qq1358661914 2015-07-22 03:41:04
这是提交post请求的页面

protected void Button1_Click(object sender, EventArgs e)
{
string json = GetReleseUserJson();
string str = HttpPost(json, "http://192.168.1.113/testapi/api/test");
Response.Write(str);
}

private string HttpPost(string postDataStr, string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/json";
//request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
Stream myRequestStream = request.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postDataStr);
myStreamWriter.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return retString;
}
//JSON字符串
public static string GetReleseUserJson()
{



string json = "{";
json += "\"ID\":5,";
json += "\"Name\":\"超大厦\",";
json += "\"Age\":55";
json += "}";
return json;
}


这是web API 控制器里的

public Test Post([FromBody]Test ttt)
{



return ttt;
}


这是model里的

public class Test
{
public int ID { get; set; }

public string Name { get; set; }

public int Age { get; set; }


}
...全文
4015 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
insus 2015-07-23
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
http://blog.csdn.net/starfd/article/details/43561989 你看下我这个小工具代码吧
qq1358661914 2015-07-22
  • 打赏
  • 举报
回复
求回复啊求回复,webapi怎么接收post过来的数据啊???
qq1358661914 2015-07-22
  • 打赏
  • 举报
回复
引用 4 楼 starfd 的回复:
request.ContentType = "application/json"; 我指的是这个,为什么不通过application/x-www-form-urlencoded ,一般都是这样传递的 另外,如果允许的话,最好直接用HttpClient这个类库来访问WebAPI,它做了好些封装
改成application/x-www-form-urlencoded返回的也还是null,我的web api里有问题吗
  • 打赏
  • 举报
回复
request.ContentType = "application/json"; 我指的是这个,为什么不通过application/x-www-form-urlencoded ,一般都是这样传递的 另外,如果允许的话,最好直接用HttpClient这个类库来访问WebAPI,它做了好些封装
qq1358661914 2015-07-22
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
如果可以的话,你为什么要用json提交呢?为什么不用form提交呢?
原本是想做数据同步的,web api放到云服务器上,先获取本地需要同步的数据,转成json,再通过web api同步到云服务器上,主要后台操作,form是前台的吧?
qq1358661914 2015-07-22
  • 打赏
  • 举报
回复
返回的一直是null
  • 打赏
  • 举报
回复
如果可以的话,你为什么要用json提交呢?为什么不用form提交呢?

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧