关于Java链接c#的webapi的注意事项

mac2022-06-30  81

最近写了一个关于ad域的项目,ad域我也是第一次接触,对ad域的总结我会晚一些时间写出来。在此我先总结一下关于Java调用c#的webapi的一个注意点。

1 [HttpPost] 2 public Dictionary<string, object> CreateAccount([FromBody]object userJson) 3 { 4 5 6 return _icreateAccount.NewAccount(userJson.ToString()); 7 8 9 }

这样写在c#中使用是可以的,但是如果Java来调用这个接口是不行的。虽然能够调到这个方法,但是参数userJson中什么也没有,也不是null。后来问了老同事才明白什么原因,调用方以流的方式过来调用数据,c#的api接收不到来自Java的流,必须做出以下修改:

1 [HttpPost] 2 public Dictionary<string, object> CreateAccount() 3 { 4 5 byte[] byts = new byte[HttpContext.Current.Request.InputStream.Length]; 6 HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length); 7 string req = System.Text.Encoding.UTF8.GetString(byts); 8 return _icreateAccount.NewAccount(req); 9 }

这样读取Java传过来的流就没有问题了。

转载于:https://www.cnblogs.com/qmz-blog/p/11280601.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)