服务器未能识别 HTTP 头 SOAPAction 的值

 JAVA调用NET 报服务器未能识别 HTTP 头 SOAPAction 的值,遇到这种问题时,是因为没有设SOAPAction 


的值,加上这行代码就可以call.setSOAPActionURI("http://tempuri.org/Add"),注意后面的Add方法哦,是方法名,一定要带哦

完整的代码:
String a = "a";   
String endpoint = "http://192.168.0.101/ttt/WebService1.asmx";    
            // 创建一个服务(service)调用(call)     
            Service service = new Service();    
            Call call = (Call) service.createCall();// 通过service创建call对象     
            // 设置service所在URL    
            call.setTargetEndpointAddress(new java.net.URL(endpoint));   
      
            call.setOperationName(new QName("http://tempuri.org/","Add")); 
            //Add 是net 那边的方法 "http://tempuri.org/" 这个也要注意Namespace 的地址,不带也会报错
           call.addParameter(new QName("http://tempuri.org/","test"), 
                   org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
           // 这就是我搞了一天的原因所在,"test" 这个就是传参数的变量,也就是NET方面的参数,一定不要带错了
            // 我当初不知道 ,以为这个参数是自己随便写的,结果总是报NULL,真是气死人了
            
            call.setUseSOAPAction(true); 
            call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING); //返回参数的类型
            call.setSOAPActionURI("http://tempuri.org/Add"); //这个也要注意 就是要加上要调用的方法Add,不然也会报错
            
            // Object 数组封装了参数,参数为"This is Test!",调用processService(String arg)     
            String ret = (String) call.invoke(new Object[] {a});    
            System.out.println("--------"+ret);    

希望能帮到你
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值