java调用webservice接口(.asmx)

java调用webservice接口(.asmx)

该系统提供了webservice接口。现在把记录一下,方便自己以后用,说不定也能帮到正在看这篇文档的你。
首先需要确认,我这边写的是java后台直接调用webservice接口,并且接口后缀为asmx。
下面直接上代码:

    public static void main(String[] args){
    String url <span class="token operator">=</span> <span class="token string">"http://192.168.7.2:8000/Webservice1.asmx"</span><span class="token punctuation">;</span><span class="token comment">// 提供接口的地址</span>
    String soapaction <span class="token operator">=</span> <span class="token string">"http://tempuri.org/"</span><span class="token punctuation">;</span> <span class="token comment">// 域名,这是在server定义的--不知道的可以问接口提供方,他们一并提供这个</span>
    
    String pageSize <span class="token operator">=</span> <span class="token string">"5"</span><span class="token punctuation">;</span>
    String pageindex <span class="token operator">=</span> <span class="token string">"1"</span><span class="token punctuation">;</span>
    
    Service service <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Service</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">try</span><span class="token punctuation">{</span>
        Call call <span class="token operator">=</span> <span class="token punctuation">(</span>Call<span class="token punctuation">)</span> service<span class="token punctuation">.</span><span class="token function">createCall</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        call<span class="token punctuation">.</span><span class="token function">setTargetEndpointAddress</span><span class="token punctuation">(</span>url<span class="token punctuation">)</span><span class="token punctuation">;</span>
        call<span class="token punctuation">.</span><span class="token function">setOperationName</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">QName</span><span class="token punctuation">(</span>soapaction<span class="token punctuation">,</span> <span class="token string">"GetPatyOrganization"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 设置要调用哪个方法</span>
        call<span class="token punctuation">.</span><span class="token function">addParameter</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">QName</span><span class="token punctuation">(</span>soapaction<span class="token punctuation">,</span> <span class="token string">"pageSize"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token comment">// 设置要传递的参数--要和接口方提供的参数名一致</span>
                org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>axis<span class="token punctuation">.</span>encoding<span class="token punctuation">.</span>XMLType<span class="token punctuation">.</span><span class="token constant">XSD_STRING</span><span class="token punctuation">,</span>
                javax<span class="token punctuation">.</span>xml<span class="token punctuation">.</span>rpc<span class="token punctuation">.</span>ParameterMode<span class="token punctuation">.</span><span class="token constant">IN</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        call<span class="token punctuation">.</span><span class="token function">addParameter</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">QName</span><span class="token punctuation">(</span>soapaction<span class="token punctuation">,</span> <span class="token string">"pageindex"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token comment">// 设置要传递的参数</span>
                org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>axis<span class="token punctuation">.</span>encoding<span class="token punctuation">.</span>XMLType<span class="token punctuation">.</span><span class="token constant">XSD_STRING</span><span class="token punctuation">,</span>
                javax<span class="token punctuation">.</span>xml<span class="token punctuation">.</span>rpc<span class="token punctuation">.</span>ParameterMode<span class="token punctuation">.</span><span class="token constant">IN</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        call<span class="token punctuation">.</span><span class="token function">setReturnType</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">QName</span><span class="token punctuation">(</span>soapaction<span class="token punctuation">,</span> <span class="token string">"GetPatyOrganization"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> String<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 要返回的数据类型(自定义类型,我这边接口提供方给我返回的是json字符串,所以我用string类型接收。这个地方一定要设置好,不然各种报错很崩溃)</span>

        call<span class="token punctuation">.</span><span class="token function">setUseSOAPAction</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        call<span class="token punctuation">.</span><span class="token function">setSOAPActionURI</span><span class="token punctuation">(</span>soapaction <span class="token operator">+</span> <span class="token string">"GetPatyOrganization"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        String v <span class="token operator">=</span> <span class="token punctuation">(</span>String<span class="token punctuation">)</span> call<span class="token punctuation">.</span><span class="token function">invoke</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Object</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token punctuation">{</span> pageSize<span class="token punctuation">,</span> pageindex <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">// 调用方法并传递参数-传递的参数和设置的参数要对应,顺序不能搞错了</span>

        System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token comment">//打印结果(我设置的接收格式为json字符串,这边直接打印出来)</span>
    <span class="token punctuation">}</span><span class="token keyword">catch</span> <span class="token punctuation">(</span>Exception ex<span class="token punctuation">)</span><span class="token punctuation">{</span>
        ex<span class="token punctuation">.</span><span class="token function">printStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>  
<span class="token punctuation">}</span>

嗯,上面这段代码要想成功运行还需要加载几个jar包:

activation.jar
axis-1.4.jar
axis-jaxrpc-1.4.jar
commons-discovery-0.5.jar
commons-httpclient.jar
mail.jar
wsdl4j-1.6.3.jar

由于方法中用的几个接口都是上面几个jar包提供的,所以缺少jar会报错。jar包可以到maven仓库下载。jar包加好以后,main方法就可以直接运行啦~~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值