如何在调用WebService方法时,postman传递对象数组组参数

下次自动登录
现在的位置:
& 综合 & 正文
用java写的调用.net写的WebService时,调用成功,参数传不过去的原因
用java写的调用.net写的WebService时,调用成功,参数传不过去的原因:
因为.net写的webservice指定了namespace,所以java端的程序也必须指定namespace,否则就会出现调用成功,但是参数传不过去的问题.
call.addParameter(new QName(AppProperty.getSoapUri(),arrayArgs[0]),
new QName(AppProperty.getParaPrefix() + arrayArgs[1]),
javax.xml.rpc.ParameterMode.IN);
上面标红的即为指定namespace,AppProperty.getSoapUri()所得结果就是.net端指定的namespace,这个可以在.net端的webservice代码开始处看到.
&&&&推荐文章:
【上篇】【下篇】android 连接webService 如何传对象参数 ? - ITeye问答
在android端调用webService 无参的和基本类型参数的方法都没问题, 现在要调用的是一个带复杂对象类型(Object中还包含List&Object&)的方法,主要是提交一些数据到服务器。
一开始按照基本类型的套路调用,提示类型序列化错误(此时应该还没连上服务器,应该是本地就报错),实现KavSerializable依然无效,而如果干脆传一个String过去,报 'soap:Server' faultstring: 'Server was unable to process request. ---& Object reference not set to an instance of an object.' faultactor: 'null' detail: org.kxml2.kdom.Node@43ee26b8
同一个WebService为什么带对象类型的参数的方法服务器会无法识别(或是拒绝访问)呢?
服务器是.net 写的,这个问题困了我一个多星期了,期望成功传过对象类型的前辈给以帮助 ,不甚感激!分全给上了。
网上的各种方法我查遍了,谢绝copy
问题补充:renpeng301 写道用ksoap2可以调用WebService传递对象
我用的就是KSOAP2 ,
问题补充:renpeng301 写道能贴下你的代码么?
SoapObject request = new SoapObject(NAME_SPACE, methodName);
PropertyInfo pi = new PropertyInfo();
pi.setName("order");
pi.setValue(order);
pi.setType(Order.class);
request.addProperty("order",order);//要上传的对象
HttpTransportSE ht = new HttpTransportSE(url, 22000);// 设置超时时间22秒
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet =
envelope.setOutputSoapObject(request);
ht.call(NAME_SPACE + methodname, envelope);
//完成提交
问题补充:renpeng301 写道服务器是.net 写的WebService
是否设置 为rpc方式?
server 端不是我写的,& 我也不会点呐特, 你说的rpc 方式是什么意思 ?
我是用post进行上传,数据有数组,图片等等,
哎呀 以前我做的时候就是用的http的request请求啊!根本没有用Web Services,给应用传递json或者xml都是可以的啊!
&&&&&&&&&&&&&&&&&&
是不是客户端的引用包不对。
这个问题。。。确实是个问题,我们昨天是通过Vector装入String类型数据传递成功的
也不知道说的对不对,为啥不用json呢?
楼主应该问的就是怎么给服务器接口上传数据的问题吧?
这个服务器定好接口了不是有格式的么,数据怎么上传,让他们告诉你就行了,应该不需要你操心的啊?
上传数据一般用post方式,图片一般用流的方式上传,字符串可以用StringEntity 来上传,其他的还可以直接放到HttpPost的Header里面带上去,其实这些都需要你跟服务器端去交流的,让他们告诉你怎么上传数据就行
& [WebService(Namespace = "http://tempuri.org/")]//指定webservice的名称空间
&&& [SoapRpcService]//指定使用rpc方式
&&& public class Default : System.Web.Services.WebService
&&& {
&&&&&&& [SoapRpcMethod, WebMethod]//具体方法中也要指定rpc方式
&&&&&&& public Order HelloWorld(Order order)
&&&&&&& {
&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&& }
&&& }
envelope.bodyOut =
&& envelope.setOutputSoapObject(request);
&& envelope.encodingStyle="UTF-8";
:D 实在不行& 把这些也设置者吧 多尝试下
检查下你服务端的SOAP VER
客户端的SOAP VER要和服务端对应,也可以低于服务端,但是不能高于服务端。
服务器是.net 写的WebService
是否设置 为rpc方式?
关注对象参数的类型,将上传的对象编译成.class文件试试看
貌似不能传你说的对象吧,一般都是传递Xml,然后再解析~
用ksoap2可以调用WebService传递对象
你。net端 是不是用的rpc方式??
能贴下你的代码么?
已解决问题
未解决问题cxf 动态调用webservice 怎么传递 ArrayOfAnyType 类型
求解答,没有生成本地代码(如果方法参数改动的话,变动太大),只是想直接调用例如
private static JaxWsDynamicClientFactory factory
= JaxWsDynamicClientFactory.newInstance();
private static Client
= factory.createClient(WSDL_URL);
client.invoke(methodName, params); 1,怎么样传递ArrayOfAnyType类型的参数,使用Object,String和arrayList都是ClassCaseException?
2、是否可以通过序列化搞定转换和反转的问题?
问题还没解决吗
引用来自“gepp2010”的答案 问题还没解决吗
本来打算使用动态调用,只能使用wsimport 生成客户端代码,已解决
我怎么报错呢,用这个android如何在webservice中传递对象参数 - ITeye问答
webservice方法定义如下:
BizProcessResult execBizProcess(String sessionId, String bizProcessName, String id, List&LBParameter& params, List&LBParameter& variables);
解析如下:
用cxf生成的LBParameter看到只有两个参数
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "lbParameter", propOrder = {
public class LbParameter {
protected S
protected S
请问ksoap2怎么传递 name="params" type="tns:lbParameter" 这个参数到服务器,请前辈们 指点
目前还没有答案
已解决问题
未解决问题

我要回帖

更多关于 bundle 传递对象数组 的文章

 

随机推荐