wanjc314
wanjc314
2017-12-23 08:09

C#调用cxf写的webservice

20
  • cxf
  • c#
  • webservice
  • net

public static void main(String[] args) {

    JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    //创建client,wsdlUrl地址格式:业务协同管理平台访问地址+/services/yinHaiBusiness?wsdl
    Client client = dcf.createClient("http://10.200.30.23:8001/xtpt/services/yinHaiBusiness?wsdl");
    HTTPConduit http = (HTTPConduit) client.getConduit();
    //设置连接超时参数
    HTTPClientPolicy hcp = new HTTPClientPolicy();
    hcp.setConnectionTimeout(2000);
    hcp.setReceiveTimeout(200000);
    http.setClient(hcp);

    //参数xml,最外层必须是input节点
    String aac002 = "652101196406210414";
    String jybh ="Q001";
    String nd ="2016";
    String aae041 ="200801";
    String aae042 ="201706";

    String xmlInput="<input><aac002>"+aac002+"</aac002><nd>"+nd+"</nd><aae041>"+aae041+"</aae041><aae042>"+aae042+"</aae042><yac005>"+0123456+"</yac005><jybh>"+jybh+"</jybh></input>";     
    //设置SOAP头信息
     /** AddSoapHeader 构造函数说明:1、协同平台webservice服务命名空间:http://yinhai.com
      **         2、接入系统标识
      *          3、参数
      *          4、参数签名
      *          5、服务标识
      **/
    try{
        client.getOutInterceptors().add(new AddSoapHeader("http://yinhai.com","CCB_SelfHelp",xmlInput,
                RSAUtils.sign(xmlInput,"CCB_SelfHelp.keystore"),"TaService"));
        //发起调用
        Object[] obj= client.invoke("callBusiness", xmlInput);
        //获取返回结果(XML格式)
        Object result = obj[0];
        System.out.println(result);
    }catch(Exception e){
        System.out.println(e.getMessage());
    }

}

这个是用java写的调用那个webservice的方法的参考事例,现在我需要用c#来实现,求方法,主要是在c#里如何实现java的getOutInterceptors
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答