参数使用utf-8编码转换一下看看,你这个没有明显的转换编码的代码

解决方案 »

  1.   

    求详细指点。。
    string xml = new String(xml.getBytes(),"UTF-8");
      

  2.   

    public static void main(String[] args) throws IOException {
    String url = "http://ws04.itour.cn:8084/ItourAgentCRSService.asmx?wsdl";
    String operateName = "mesDelete";//你要调用的方法名
    String namespace="";

    Service service = new Service();
    Call call = null;
    try {
    call = (Call) service.createCall();
    call.setTargetEndpointAddress(url);
    call.setOperationName(operateName);   
    call.setReturnType(XMLType.XSD_STRING);
    call.addParameter("AgentID",    XMLType.XSD_INTEGER,  ParameterMode.IN);
    call.addParameter("DepartureAirport",    XMLType.XSD_INTEGER,  ParameterMode.IN);
    call.addParameter("ArriveAirport",    XMLType.XSD_INTEGER,  ParameterMode.IN);
    call.addParameter("DepartureDate",    XMLType.XSD_INTEGER,  ParameterMode.IN);
    call.addParameter("CarrierCode",    XMLType.XSD_INTEGER,  ParameterMode.IN);
    call.addParameter("FS",    XMLType.XSD_INTEGER,  ParameterMode.IN);




    String result = (String)call.invoke(
    new Object[] {"GDDX","CAN","PEK","2014-01-18","","D"});
    System.out.println(result);
    } catch (ServiceException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
      

  3.   

    求详细指点。。
    string xml = new String(xml.getBytes(),"UTF-8");
    转码依旧诶,真的好难。
      

  4.   

    我像你那么用过,直接把XML转成数组的第一个元素,传过去。
      

  5.   

    http://blog.csdn.net/fengyun111999/article/details/7517599你看看吧 和你的还是有区别的
      

  6.   

    是不是xml里面的 日期类型的格式有问题试试YYYYMMDD人家可能会验证这个格式吧
      

  7.   

    你先确定是接口报错,还是接口通了但是参数格式不对?接口的调试确实很烦的,不是说别人不出错你就不会出错,不同的服务端的问题是不能完全再现的。别人帮你有限,自己反复调试找到具体的问题再说。你可以用工具先用soapUI试试。
      

  8.   

    用C#工具 测试 接口没问题 格式也是对的 数据也能显示
    我用Java调用 就出现XML格式不正确 诶 我也没办法了 弄了一周多 方法也换了几种都是一样的错误
      

  9.   


    不用纠结于是不是代码的问题了,用soupUI调,用确认可以的参数去调,如果调不同,那就说明参数或者说参数的类型是有问题的,如果能调通,在去考虑是不是代码的问题
      

  10.   

    楼主别纠结了,我给你点东西:
    OMFactory factory = OMAbstractFactory.getOMFactory();
    OMNamespace namespace = factory.createOMNamespace("http://xxx你的namespace", "xsd");
    OMElement jsonElement = factory.createOMElement("jsonstr",null);//jsonstr,参数名
    String fcJson = fcObj.toString();//json字符串
    jsonElement.addChild(factory.createOMText(jsonElement,fcJson));//参数赋值
    OMElement method = factory.createOMElement("方法名称",namespace);//换成你自己的
    method.addChild(jsonElement);//给方法加入参数//最后调用并传递参数
    ServiceClient sender = new ServiceClient();
    sender.setOptions(options);
    OMElement result = sender.sendReceive(method);
    String resultStr = result.getFirstElement().getText();
      

  11.   

    哦。如果你发布成功大家测试下。以前做过 java 调用c # 没问题 。
      

  12.   

    我给你那代码不好用吗?那可是我实际项目中的代码
    运行没效果 接口方法 
    方法名称 AV
    原  型 string AV(string ParamsXml)参数名 类型 长度 可空标志 说明
    ParamsXml String 必填 查询参数XML格式
    参数是 XML格式 String 类型的  不是json 有错误
      

  13.   


    我给你那代码不好用吗?那可是我实际项目中的代码
    运行没效果 接口方法 
    方法名称 AV
    原  型 string AV(string ParamsXml)参数名 类型 长度 可空标志 说明
    ParamsXml String 必填 查询参数XML格式
    参数是 XML格式 String 类型的  不是json 有错误
    我给你那代码不好用吗?那可是我实际项目中的代码
    运行没效果 接口方法 
    方法名称 AV
    原  型 string AV(string ParamsXml)参数名 类型 长度 可空标志 说明
    ParamsXml String 必填 查询参数XML格式
    参数是 XML格式 String 类型的  不是json 有错误

    我就是给你个例子,我业务里是传json字符串而已
      

  14.   

    我给你那代码不好用吗?那可是我实际项目中的代码
    运行没效果 接口方法 
    方法名称 AV
    原  型 string AV(string ParamsXml)参数名 类型 长度 可空标志 说明
    ParamsXml String 必填 查询参数XML格式
    参数是 XML格式 String 类型的  不是json 有错误
    我给你那代码不好用吗?那可是我实际项目中的代码
    运行没效果 接口方法 
    方法名称 AV
    原  型 string AV(string ParamsXml)参数名 类型 长度 可空标志 说明
    ParamsXml String 必填 查询参数XML格式
    参数是 XML格式 String 类型的  不是json 有错误

    我就是给你个例子,我业务里是传json字符串而已
    /jsonstr,参数名  搞不懂  代码好像不全, 我对这方面不是很熟
      

  15.   

    仔细看看,http抓包看得很明显的,如果不好用,装个wireshark,没数据说明在本地就已经没通过,而你的说明是服务器返回了,看仔细点