webservice接口返回值格式问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webservice接口返回值格式问题相关的知识,希望对你有一定的参考价值。
这是我的接口返回的值,我在我的webservcie接口上用jsonArray处理了对象,方法以string类型返回。
但我这个接口是跟ios关联的,ios那边说浏览器输入地址,直接返回
'success':true, 'msg':'"author":"HELLO","isbn":"0123456789","title":"Using Axis2"'值
有没有大神告诉我怎么处理。
ios那边还问我用post返回的还是get,我一想get,post不是都在action层 以response返回的吗,我这是接口service 怎么可能有response呢。。。
第二个是可以用post的,用httpClient的post方法返回。建议post安全些。追问
能否加我企鹅 834799778,
第二种怎么实现?是在我的服务端接口里面处理吗?客户端是ios那边,那边人只要结果。。
不要用webservice接口给对方,直接用tomcat就行了。如果service是你写的 那直接写一个action action调用服务后返回对象,然后在response中直接拼接对象属性成json或者用Xstream直接把对象转成json输出。
服务不是你写的话,就在action中调用人家的接口返回对象 然后输出。
给你一个SPRING MVC 的Controller 返回xml 的代码 我是返回了xml 返回json的话就百度Xstream JSON 有很多文章。
@RequestMapping("api/agentFeeBack.action")public String agentFeeBack(@RequestParam("account")String account,@RequestParam("number")String number,@RequestParam("fee_session_id")String fee_session_id,@RequestParam("deal_time")String deal_time,@RequestParam("balance")String balance,HttpServletRequest request,HttpServletResponse response)
PrintWriter out=null;
XStream xs=new XStream();
try
response.setContentType("text/xml; charset=utf-8");
response.addHeader("Cache-Control", "no-cache");
out=response.getWriter();
out.println("<?xml version='1.0' encoding='UTF-8'?>");
if(servicefactory!=null)
if(account==null)
account=getdefaultAccount();
if(validateAgentFeeBack(number, balance,deal_time,fee_session_id))
UnicomBackMessageBasic back=payFeeService.agentFee(account, "", "", number, balance, deal_time, fee_session_id, "1",null,null);
String rsp=back.getRSP_CODE();
if(rsp.length()>3)
if("00000".equals(rsp))
// AgentFeeBack aback=(AgentFeeBack)back;
xs.alias(alias, AgentFeeBack.class);
out.println(xs.toXML(back));
else
xs.alias(alias, UnicomBackMessageSeccuss.class);
out.println(xs.toXML(back));
else
xs.alias(alias, UnicomBackMessageBasic.class);
out.println(xs.toXML(back));
else
UnicomBackMessageBasic back=new UnicomBackMessageBasic("2","1","参数有误");
xs.alias(alias, UnicomBackMessageBasic.class);
out.println(xs.toXML(back));
else
UnicomBackMessageBasic back=new UnicomBackMessageBasic("4","7","服务未自动装配");
xs.alias(alias, UnicomBackMessageBasic.class);
out.println(xs.toXML(back));
out.flush();
catch (IOException e)
e.printStackTrace();
finally
if(out!=null)
out.close();
return null;
对方用 POST 或GET方法 调用 ip/api/agentFeeBack.action 这个地址
通过传入相应的参数 ,我再去调用payFeeService的agentFee方法 方法返回了一个AgentFeeBack对象 用Xtream 序列化成xml通过响应直接输出到页面就行了。
您这边有加密解密的代码吗?听说ios给我们的request值先解密 ,返回时候再得加密
C# 调用Java的WebService(返回json格式数据),老是返回null, 求解!
wsdl链接:http://eamtest.envisioncn.com:8180/msgagent/services/SyncMobileObjsService?wsdl
请帮我用C# 写个WebService的调用,就调用里面的getEAMObject()方法, 我自己测试每次调用都返回null,也不报任何错误,不知道什么原因。 谢谢回答
经过几天的摸索,问题终于解决了, 还是由于 【命名空间】的问题,导致一直取到null, 具体如下:
在自动生成的.cs文件里,找到需要调用的方法,把方法名上的“RequestNamespace”,“ResponseNamespace” 这两个值设为一样,记住一定要一模一样,经过测试,也可以两个都为空,总之,只要这两个值都一样,调用返回就都正常了. 谢谢各位的回答了.
按wsdl的描述:
而getEAMObjects(你问题中的缺少s)返回的值的内容是通过getEAMObjectsResponse()实现的,在XML中的描述如下:
<wsdl:message name="getEAMObjectsResponse">
<wsdl:part name="getEAMObjectsReturn" type="xsd:string"/>
</wsdl:message>
可以看出:返回的string(也行是Json串)而不是Json对象。
所以,你在调用后,需要你将得到的字符串转换成对象!!
追问现在的问题是,我得不到返回的string值, 一直显示为null, 也不报错. 如下图,msg一直为null.
补充:SyncMobileOjbectServiceService是一个接口,因此
SyncMobileOjbectServiceService synMoble = new 某个实现了SyncMobileOjbectServiceService接口的类( )
而不是
SyncMobileOjbectServiceService synMoble = new SyncMobileOjbectServiceService()
不传参数也是有提示的,提示“Both objectName and mobileWhereSQL couldn't be null!” !不管传什么参数,参数有错误,或者参数为空,都是有返回值的.
以上是关于webservice接口返回值格式问题的主要内容,如果未能解决你的问题,请参考以下文章
java编写一个webservice接口,接口中的方法参数应该是啥,返回值呢?(急)要求见补充,谢谢啦