java 调用webservice接口(asmx)

进入.asmx的链接,找到方法名、命名空间等

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement;

/**
 * Created by liwj on 2017/6/15.
 */
public class AsmxTest {private static String urlhsb="";
    private static String namespaceURI="";

    public static void main(String[] args){
        String xsXml="";
        Service service=new Service();
        try {
            Call call=(Call)service.createCall();
            call.setTargetEndpointAddress(urlhsb);
            //设置要调用哪个方法
            call.setOperationName(new QName(namespaceURI,"GetCbzm"));
            call.addParameter(new QName(namespaceURI,"xml"),
                    org.apache.axis.encoding.XMLType.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
            call.setUseSOAPAction(true);
            call.setSOAPActionURI(namespaceURI);

            //设置soapHeader
            SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(namespaceURI, "ValidationSoapHeader");
            soapHeaderElement.setNamespaceURI(namespaceURI);
            try {
                soapHeaderElement.addChildElement("UserName").setValue("");
                soapHeaderElement.addChildElement("PassWord").setValue("");
                call.addHeader(soapHeaderElement);
            }catch (Exception e){

            }

            String res=String.valueOf(call.invoke(new Object[]{xsXml}));

            System.out.println(res);


        }catch (Exception e){
            System.out.println(e.getMessage());
        }
    }
}

 

posted on 2017-06-20 10:12  13rj1115  阅读(9657)  评论(0编辑  收藏  举报

导航