java 调用asmx[通俗易懂]

java 调用asmx[通俗易懂]packagecom.webservice.test;importjava.util.Vector;importjavax.xml.namespace.QName;importjavax.xml.rpc.ParameterMode;importjavax.xml.rpc.encoding.XMLType;importorg.apache.axis.clien

大家好,又见面了,我是你们的朋友全栈君。package com.webservice.test;

import java.util.Vector;

import javax.xml.namespace.QName;

import javax.xml.rpc.ParameterMode;

import javax.xml.rpc.encoding.XMLType;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

/**

* 通过输入IP地址查询国家、城市、所有者等信息。没有注明国家的为中国 输入参数:IP地址(自动替换 ” 。” 为 “.”),返回数据:

* 一个一维字符串数组String(1),String(0) = IP地址;String(1) = 查询结果或提示信息

*

* @author liulei

*

*/

public class GetCountryCityByIp {


// 提供IP地址搜索WEB服务的URL


private String url =”http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”; // 在浏览器中打开url,可以找到


//private String soapAction=”http://WebXml.com.cn/getCountryCityByIp”


private String namespace = “http://WebXml.com.cn/”;// targetNamespace 


private String actionURI = “getCountryCityByIp”; // Action路径 


private String op = “getCountryCityByIp”; // 要调用的方法名





@SuppressWarnings(“unchecked”)


public GetCountryCityByIp() {


Service service = new Service();


try {


Call call = (Call) service.createCall();


call.setTargetEndpointAddress(new java.net.URL(url)); 


call.setUseSOAPAction(true);


// action uri


call.setSOAPActionURI(namespace + actionURI);


// 设置要调用哪个方法


call.setOperationName(new QName(namespace, op));


// 设置参数名称,具体参照从浏览器中看到的


call.addParameter(new QName(namespace, “theIpAddress”),XMLType.XSD_STRING, ParameterMode.IN); // 要返回的数据类型 


call.setReturnType(new QName(namespace, op), Vector.class); // 入参:对应theIpAddress 


Object[] params = new Object[] { “202.108.22.5” }; // 调用方法并传递参数 


Vector v = (Vector) call.invoke(params); 


for (int i = 0; i < v.size(); i++) 





System.out.println(v.get(i)); 








catch (Exception ex) 





ex.printStackTrace(); 





}


public static void main(String args[]) 





new GetCountryCityByIp(); 


}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133150.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker下载安装教程_安卓安装docker

    docker下载安装教程_安卓安装docker前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

    2022年7月28日
    6
  • 02-continue与break的区别「建议收藏」

    02-continue与break的区别「建议收藏」大家好,我是Python领域的博主,如果觉得我的写的不错的话,请点赞关注支持我一下。如果你是初学者,可以和小编一起学习,在这里我每天都会发Python的基础知识,以及相关的代码。关注我和我一起学习吧文章目录 一、continue和break的区别 二、使用方法 1.continue 2.break 总结一、continue和break区别break和continue是python语…

    2022年9月13日
    0
  • CAN通信的数据帧和远程帧「建议收藏」

    (先来一波操作,再放概念)远程帧和数据帧非常相似,不同之处在于:(1)RTR位,数据帧为0,远程帧为1;(2)远程帧由6个场组成:帧起始,仲裁场,控制场,CRC场,应答场,帧结束,比数据帧少了数据场。(3)远程帧发送特定的CANID,然后对应的ID的CAN节点收到远程帧之后,自动返回一个数据帧。环回模式下(方便调试用),设置为发送远程帧:STM32端通过J-LinkRT…

    2022年4月6日
    351
  • redis启动停止重启_redis重启命令行

    redis启动停止重启_redis重启命令行1、查看redis是否在运行:psaux|grepredis2、启动redis:/etc/init.d/redisstart3、关闭redis:redis-clishutdown4、当设置密码后,上面的关闭命令无效:带密码输入:redis-cli-a[password]回车后输入:shutdown即可关闭redis,输入ex…

    2022年4月20日
    786
  • python多线程的几种方法

    python多线程的几种方法python多线程编程Python多线程编程中常用方法:1、join()方法:如果一个线程或者在函数执行的过程中调用另一个线程,并且希望待其完成操作后才能执行,那么在调用线程的时就可以使用被调线程

    2022年7月3日
    23
  • 云麦体脂秤怎么拆开(云麦好轻体脂秤如何校准)

    如果是一个真正的体脂秤就好了:华为智能体脂秤2019-06-2617:12:0034点赞11收藏25评论家里十几块钱的体重秤电池没电了,电池仓用螺丝刀也搞不开,不得已买个新的吧。这两年体脂秤吹的火,就也来尝尝鲜。平时在健身房经常使用Inbody的体质测试仪器(一种高级体脂秤),所以看到体脂秤广告里说的人体生物电啊,测体脂啊,多项直标啊什么的,还是挺期待。毕竟健身房的体测仪需要密码才能用,如果…

    2022年4月15日
    162

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号