精华内容
下载资源
问答
  • java调用webservice接口案例,精简,service调用webservice接口案例;不用生成一堆代码,逻辑清晰
  • JAVA调用WEBSERVICE接口

    2017-07-12 09:25:47
    JAVA调用WEBSERVICE接口
  • 自定义xml调用webservice
  • 主要为大家详细介绍了java WSDL接口webService实现方式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了Java解析调用webservice服务的返回XML串详解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • java项目简单模拟soap型的webservice远程调用服务,内附使用说明文档方便学习和查阅,让你轻松学会soap-webservice的使用方法!
  • NULL 博文链接:https://genius.iteye.com/blog/451378
  • JAVA调用webservice并解析xml

    热门讨论 2013-06-13 16:33:54
    本人测试能成功运行并输出结果。因为项目需要,在myeclipse中测试可行,在eclipse中也已测试。请放心使用。
  • JAVA调用Webservice接口Demo

    热门讨论 2013-05-09 14:55:13
    JAVA调用Webservice接口Demo 直接上代码,下载下来可直接运行看到效果 1,IP查询 2,根据省份查城市
  • Java调用WebService接口实现发送手机短信验证码功能,只能用炫酷来形容,感兴趣就下载看看吧
  • 使用Java调用webservice服务,工具类中获取天气服务,可根据官方api进行修改
  • 我使用下面的方式请求 public static String postData1(String urlAddress, String encodedType, Map,String> params) { try { URL url = new URL(urlAddress); URLConnection conn = url.openConnection...
  • JAVA调用WebService接口

    2018-09-13 09:41:04
    文章前提:通过使用JAVA 编程语言调用.net发布的接口 在网上查阅好多文章发现调用WebService的接口有很多种,最终我是采用的将WebService接口利用Ecplise将接口导入到本地,然后直接调用接口即可,具体方法如下: ...

    文章前提:通过使用JAVA 编程语言调用.net发布的接口
    在网上查阅好多文章发现调用WebService的接口有很多种,最终我是采用的将WebService接口利用Ecplise将接口导入到本地,然后直接调用接口即可,具体方法如下:
    1、在项目的Src下面新建Web Service Client ,点击下一步输入你的接口地址,不要忘记在后面加上?WSDL如下图:
    新建

    填写地址

    2、新建成功后在你的Src下面就会多出以下内容,这里分出两部分内容,第一为所有实体类,第二是你调用接口中的方法时所需要的类。

    3、前期工作准备完毕后就进入正式的接口调用了,这时就可以通过s去直接调用方法了。
    黑色部分为你的接口地址

    展开全文
  • java 调用 webService工具类

    热门讨论 2011-09-15 10:04:32
    java 调用 webService大多数情况下的通用工具类,具体使用见里面的说明
  • 利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...
  • java访问.net webservice 可获取与设置cookie
  • java调用WebService服务的几种方法

    万次阅读 多人点赞 2018-03-12 15:01:24
    一、前言 本来不想写这个的...因为通常来说,两个java端之间的互相通讯没必要写成WebService的方式,太麻烦。除非有一方已经固定了是webService的方式(常见于牛逼的甲方)。而且就算写成了WebService方式两个java...

    一、前言

           本来不想写这个的,因为网上类似的是在是太多了。但是想想自己前面段时间用过,而且以后可能再也没机会用了。所以还是记录一下吧。我这儿是以C语言生成的WebService为例。因为通常来说,两个java端之间的互相通讯没必要写成WebService的方式,太麻烦。除非有一方已经固定了是webService的方式(常见于牛逼的甲方)。而且就算写成了WebService方式两个java端直接调用也相对比较简单,因为用java的话很多规范都是自动生成好的,而其他语言就不是这样了,有时候对方压根就不是正确的规范,你还不能让对方改!!!!!我觉得webService这个东西常用于不同语言编写的服务器之间进行数据交互。因为是基于WSDL的。我知道的主要的方法有以下几种(我这儿全部以C语言编写的WebService做优缺点比较):

    二、简介  

        1、通过axis2将WebService提供的wsdl文件生成对应的java类,这样就可以相当调用本地类一样调用webService提供的接口。

        优点:调用简单,无需自己编写太多的东西。

        缺点:大部分情况根据对应的webService生成的服务中地址是固定的,不易更改,而且生成的代码过于庞大 ,不便于阅读。同时必须得有webservice对应的的wsdl文件,不太可控。

        2、通过RPC方式调用(推荐使用)

        优点:自己编写部分调用代码,可灵活更换调用的路径,适合分布式部署的服务器,只需要知道webservice服务的方法名、命名空间、以及对应的参数就好。

        缺点:部分特殊情况下可能可以调用成功,但是无法获取返回值。稍后会进行说明。

        3、通过HttpURLConnection进行调用,可用于补充第二种方法的不足之处。

        优点:补充RPC方式的不足,代码编写量较少。

        缺点:(C语言的WebService服务)大部分时候要自己编写输入的报文头,自己解析返回的报文。需要事先抓包查看报文。

        4、通过httpclient调用。

        和HttpURLConnection原理一样,只是用不同方法实现。优缺点也差不多。

    三、具体解析

       第一种方式,首先得下载axis2的jar包,Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。 wsdl2java.bat命令可以在<Axis2安装目录>/bin目录中找到。如果你配置了环境变量则可以在控制台中用一下方式

    环境变量\bin\wsdl2java,具体如下。

    %AXIS2_HOME%\bin\wsdl2java -uri d:demo.wsdl -p client -s -o stub

    如果没有则自己键入到对应的位置执行。wsdl2java -uri d:demo.wsdl -p client -s -o stub

    其中,-url是对应WebService的wsdl位置,可以是本地的也可以是网络的。-p是指定生成的类名。具体参数列表如下:

    -o <path> : 指定生成代码的输出路径
    -a : 生成异步模式的代码
    -s : 生成同步模式的代码
    -p <pkg> : 指定代码的package名称
    -l <languange> : 使用的语言(Java/C) 默认是java
    -t : 为代码生成测试用例
    -ss : 生成服务端代码 默认不生成
    -sd : 生成服务描述文件 services.xml,仅与-ss一同使用
    -d <databinding> : 指定databingding,例如,adb,xmlbean,jibx,jaxme and jaxbri
    -g : 生成服务端和客户端的代码
    -pn <port_name> : 当WSDL中有多个port时,指定其中一个port
    -sn <serv_name> : 选择WSDL中的一个service
    -u : 展开data-binding的类
    -r <path> : 为代码生成指定一个repository
    -ssi : 为服务端实现代码生成接口类
    -S : 为生成的源码指定存储路径
    -R : 为生成的resources指定存储路径

    –noBuildXML : 输出中不生成build.xml文件

    –noWSDL : 在resources目录中不生成WSDL文件

    –noMessageReceiver : 不生成MessageReceiver类

    生成完后可以在axis2的bin目录下找到对应的文件。文件和同类.java文件要大很多,并且调用路径是定死的(标红部分),改起来麻烦,反正我是不喜欢这种方式。虽然不要自己写,但是看着这么多行就不爽,太臃肿了。



    调用方式如下。(方式应该有多种,没有去深入研究)

    package client;
    	import javax.xml.namespace.QName;
    	import org.apache.axis2.addressing.EndpointReference;
    	import org.apache.axis2.client.Options;
    	import org.apache.axis2.rpc.client.RPCServiceClient;
    	public class TestAms {
    		public static void main(String[] args) throws Exception  
    	    {
    			AmsStub1 stub=new AmsStub1();
    			AmsStub1.SetAlarmServerCfgMsg setmsg= new AmsStub1.SetAlarmServerCfgMsg();
    			//ServiceStub.SetAlarmServerCfgMsgResponse re=new ServiceStub.SetAlarmServerCfgMsgResponse();
    			 String str="{\"name\":\"demo\",\"id\":21,\"code\":\"161021021040288690\"}";//对应的参数
    			setmsg.setPAlarmCfgMsg(str); //设置参数
    
    			String re=stub.setAlarmServerCfgMsg(setmsg).getResponse(); //调用并获取返回值
    			System.out.println(re);
    	    }
    	}	

         我工作中遇到的全是C语言编写的WebService,而且每个人编写的都有些区别,很多人给你的wsdl并不能直接成功生成对应的java类,而且这种方法还有上述的一些缺点,所以我抛弃了这种方法。(上述列的代码全是以前试验时用过的,那时候是成功的,写这个博客的时候我把所有能找到的wsdl全试着生成一遍,结果全部生成失败。心塞)。

        第二种RPC 方式,强烈推荐。这种方式不多说,直接看代码就懂了 。这是一个调用webService查询设备在线数的。

    public String getOnline(String url){
    		int errCode=0;
    		JSONObject resultJson=new JSONObject();
    		String result="";
    		Service service = new Service();
    		Call call;
    		try {
    			call=(Call) service.createCall();
    			QName opAddEntry = new QName("urn:demo", "GetOnlineInfo"); //设置命名空间和需要调用的方法名
    			call.setTargetEndpointAddress(url); //设置请求路径
    			call.setOperationName("GetNcgOnlineInfo"); //调用的方法名
    			call.setTimeout(Integer.valueOf(2000));		//设置请求超时    		
    			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 
    			result= (String) call.invoke(opAddEntry,new Object[]{});
    			
    		} catch (ServiceException e) {
    			// TODO Auto-generated catch block
    			System.out.println("查询在线状态1:"+e.getMessage());
    			errCode=1;
    		} catch (RemoteException e) {
    			// TODO Auto-generated catch block
                            System.out.println("查询在线状态2:"+e.getMessage());
    			errCode=2;
    		}
    		resultJson.put("errCode", errCode);
    	    resultJson.put("data", result);
    
    		return resultJson.toString();
    	}

    里面注释比较全。还有些别的设置也比较简单,自己琢磨就知道了。例如编码方式、解析时间等。

          说说这种方式的问题吧。我在使用的时候遇到的是:和我对接的人编写了两个WebService。但是由于这两个中有许多部分是相同的,他就把这两个合并了,同时提供了两个命名空间(具体怎么操作的我也不清楚),那么问题了,这其中有一个命名空间的所有方法我都能成功调用,但是都无法收到返回值。当时我就方了,开始还是好好的,怎么就突然不行了,于是我继续执行,查看报错消息,同时抓包查看报文内容。终于给我发现了问题。

    下图是返回结果报的错,大体意识就是说我设置的命名空间和对方的命名空间不匹配。然后RPC解析就失败了。


            然后我利用Wireshark抓包,得到一下结果。可以看看出,我请求的是命名空间是 ns1="urn:ncg"(其余的都是wsdl默认自带的)。可是我收到的返回报文就变了。变成了这样的  xmlns:dag="http://tempuri.org/dag.xsd" xmlns:dag="urn:dag" xmlns:ncg="urn:ncg"  足足有三个啊。RPC按照默认设置的 ns1="urn:ncg" 去解析,那肯定什么都解析不了的。所以只有自己去解析了。这种情况可以利用第三种或者第四种方式进行调用。


        第三种:利用HttpURLConnection拼接和解析报文进行调用。

        还是上面那个查询设备的方法。只不过改了下。当然,我这是知道报文后的解决办法。

    public String ncgConnection(String url,String method){
    		 URL wsUrl;
    	        int errCode=0;
    			JSONObject resultJson=new JSONObject();
    			String result="";
    			try {
    				wsUrl = new URL(url+"/"+method);
    				 HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection();
    			        
    			        conn.setDoInput(true);
    			        conn.setDoOutput(true);
    			        conn.setRequestMethod("POST");
    			        conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
    			        conn.setConnectTimeout(2000);
    			        conn.setReadTimeout(2000);
    			        OutputStream os = conn.getOutputStream();
    			        //请求体
    			        
    			        //<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:DeleteCascadeFromCms soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:ncg"><ncg-code-list xsi:type="xsd:string">["11241525"]</ncg-code-list></ns1:DeleteCascadeFromCms></soapenv:Body></soapenv:Envelope>
    
    			        String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "
    			        		+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soapenv:Body><ns1:"+method+" soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:ns1=\"urn:ncg\"/></soapenv:Body></soapenv:Envelope>";
    			        os.write(soap.getBytes());
    			        InputStream is = conn.getInputStream();
    			        
    			        byte[] b = new byte[1024];
    			        int len = 0;
    			        String s = "";
    			        while((len = is.read(b)) != -1){
    			            String ss = new String(b,0,len,"UTF-8");
    			            s += ss;
    			        }
                                     result=s.split("<response xsi:type=\"xsd:string\">")[1].split("</response>")[0];
    			        
    			        is.close();
    			        os.close();
    			        conn.disconnect();
    			} catch (MalformedURLException e) {
    				// TODO Auto-generated catch block
    				System.out.println("通讯模块1:"+e.getMessage());
    				errCode=1;
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				System.out.println("通讯模块2:"+e.getMessage());
    				errCode=2;
    			}
    			resultJson.put("errCode", errCode);
    			resultJson.put("data", result);
    	     
    	        return resultJson.toString();
    	}

        正常来说,利用HttpURLConnection实现很多的调用不需要自己拼接请求头和解析返回结果的(例如java端提供的一些action或者controller),可是在这儿调用WebService,确确实实的需要自己手写。对比上面那个Wireshark抓包的结果可以发现,在请求体部分按照对方提供的wsdl进行拼接,结果部分也进行相同的解析。可以正确获得结果。


    第四种,利用httpclient

        简单来说,httpClient可以算是加强版的HttpURLConnection,httpClient的API比较多,也比较稳定,不容易扩展。HttpURLConnection比较轻量级,容易根据自己的需求进行扩展。但是稳定性不如httpClient。

         这种方法具体实现思路和HttpURLConnection一样。只是有点小区别。代码如下:

    public void demo(String url){
    		
    		HttpClient httpClient=new HttpClient();
    		PostMethod postMethod=new PostMethod();
    		postMethod.setPath(url+"/ncg.wsdl"); //路径和wsdl名
    		
    		String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" "
            		+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><soapenv:Body><ns1:GetNcgOnlineInfo soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:ns1=\"urn:ncg\"/></soapenv:Body></soapenv:Envelope>";
           
    		try {
    			byte[] b=soap.getBytes("utf-8");
    			
    			InputStream is = new ByteArrayInputStream(b, 0, b.length);
    			RequestEntity re = new InputStreamRequestEntity(is, b.length,
    			                 "application/soap+xml; charset=utf-8");
    			postMethod.setRequestEntity(re);
    			int statusCode = httpClient.executeMethod(postMethod);
    			
    			String soapResponseData = postMethod.getResponseBodyAsString();
    			
    			postMethod.releaseConnection();
                            //解析
                            System.out.println(soapResponseData.split("<response xsi:type=\"xsd:string\">")[1].split("</response>")[0]);
    		} catch (UnsupportedEncodingException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} catch (HttpException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}

          结果:我这儿没有做更多的判断,直接输出,这种方式我以前其实并没有用到。如果有需要可以更具返回的状态判断是否成功。如果你去抓包的话,你会发现这个会和上面HttpURLConnection抓的一样。

        

    总结:调用webService很多程度上需要依赖对方编写WebService是否严谨,如果足够严谨,推荐使用RPC方式编写,其余的更具实际情况进行选择

    如有错误,恳请指正。大笑


    展开全文
  • java 调用webService接口工具类

    千次阅读 2018-06-11 11:23:54
    import java.util.Map; /** * call调用webservice接口用具类 * Created by AlterEgo on 2018/6/7. */ public class CallWebServiceUtils { /** * call调用webservice接口 * @param url 接口地址 * @param ...

    这几天在测试调用webService的接口,把遇到的坑分享给大家。

    最先说导包,这里用的是maven

    <!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-adb -->
            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-adb</artifactId>
                <version>1.7.8</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-transport-local -->
            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-transport-local</artifactId>
                <version>1.7.8</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-transport-http -->
            <dependency>
                <groupId>org.apache.axis2</groupId>
                <artifactId>axis2-transport-http</artifactId>
                <version>1.7.8</version>
            </dependency>

    这解释下为什么要加入这段,在做web项目是,项目已经引用了javax.servlet-api 3.1.0,可axis2包里面依赖的是2.3的,结果就版本冲突了。

    工具类和测试代码:

    import org.apache.axiom.om.OMAbstractFactory;
    import org.apache.axiom.om.OMElement;
    import org.apache.axiom.om.OMFactory;
    import org.apache.axiom.om.OMNamespace;
    import org.apache.axis2.AxisFault;
    import org.apache.axis2.addressing.EndpointReference;
    import org.apache.axis2.client.Options;
    import org.apache.axis2.client.ServiceClient;
    import org.apache.commons.collections.map.HashedMap;
    import java.util.Map;
    
    /**
     * call调用webservice接口用具类
     * Created by AlterEgo on 2018/6/7.
     */
    public class CallWebServiceUtils {
    
        /**
         * call调用webservice接口
         * @param url 接口地址
         * @param nameSpace 命名空间
         * @param methodName 方法名
         * @param paramMap 参数Map
         * @return
         */
        public static OMElement callWebServiceAxis2(String url, String nameSpace, String methodName, Map<String, Object> paramMap) throws Exception {
            OMElement result = null;
            try {
                ServiceClient serviceClient = new ServiceClient();
                //创建WebService的URL
                EndpointReference targetEPR = new EndpointReference(url);
                Options options = serviceClient.getOptions();
                options.setTo(targetEPR);
                //确定调用方法( 命名空间地址 (namespace) 和 方法名称)
                options.setAction(nameSpace + methodName);
                OMFactory fac = OMAbstractFactory.getOMFactory();
                OMNamespace omNs = fac.createOMNamespace(nameSpace, "");
                OMElement method = fac.createOMElement(methodName, omNs);
                // 遍历传入方法的参数
                for (String key : paramMap.keySet()) {
                    OMElement element = fac.createOMElement(key, omNs);
                    Object obj = paramMap.get(key);
                    if (obj != null) {
                        element.setText(paramMap.get(key).toString());
                    }
                    method.addChild(element);
                }
                method.build();
                //调用接口
                result = serviceClient.sendReceive(method);
                String resultTexe = result.getFirstElement().getText();
            } catch (AxisFault axisFault) {
                axisFault.printStackTrace();
            }
            return result;
        }
    
        /**
         * call调用webservice接口
         * @param url 接口地址
         * @param nameSpace 命名空间
         * @param methodName 方法名
         * @param paramMap 参数Map
         * @return
         */
        public static String callWebServiceAxis2Text(String url, String nameSpace, String methodName, Map<String, Object> paramMap) throws Exception {
            OMElement element = callWebServiceAxis2(url, nameSpace, methodName, paramMap);
            String resultTexe = "";
            if (element != null) {
                resultTexe = element.getFirstElement().getText();
            }
            return resultTexe;
        }
    
        public static void main(String attr []){
    //        String url = "http://39.102.123.17:9000/PushUserService.asmx";
    //        String nameSpace = "http://groms.com/";
    //        String methodName = "CloseAccount";
    //        Map<String, Object> paramMap = new HashedMap();
    //        paramMap.put("id","123456");
    //        paramMap.put("userCode","test123");
    //        paramMap.put("unitId","orgId001");
    //        paramMap.put("unitName","斯蒂芬森公司");
    //        try {
    //            String result = callWebServiceAxis2Text(url,nameSpace,methodName,paramMap);
    //            System.out.println(result);
    //        } catch (Exception e) {
    //            e.printStackTrace();
    //        }
        }

    打开接口地址,可以看到以下信息,注意nameSpace后面的“/”,一定不能省。


    展开全文
  • java实现post请求webservice服务端

    千次阅读 2019-07-02 17:23:26
    当生成webService的客户端不好实现时,通过java的post请求不失为一种好办法。 1.例如我此时有一个wsdl文件 http://xxx.xxx.xxx.xxx:8081/APIService.svc?wsdl 2.通过SoapUI 我们可以将swdl文件转换。从而模拟...

     

    当生成webService的客户端不好实现时,通过java的post请求不失为一种好办法。

     

    1.例如我此时有一个wsdl文件

    http://xxx.xxx.xxx.xxx:8081/APIService.svc?wsdl

    2.通过SoapUI 我们可以将swdl文件转换。从而模拟发送请求。以及参数

    (不懂soapui请自行百度)

    2.点击row查看具体的发送参数

     

    具体参数对应规则(以下对应代码上应该发送的参数是什么)

    3.代码实现

     

      public static void main(String[] args) {
            try{
                String url="http://xxx.xxx.xxx.xxx:8081/APIService.svc";
                String params="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\" xmlns:hn=\"http://schemas.datacontract.org/2004/07/hn.DataAccess.bll\">\n" +
                        "         </tem:input>\n" +
                        "   </soapenv:Body>\n" +
                        "</soapenv:Envelope>";
                String host="xxx.xxx.xxx.xxx:8081";
                String SOAPAction="http://aaa/aaa/aaa";
    
                //接受返回报文
                String result = new String();
                URL u = new URL(url);
                HttpURLConnection conn = (HttpURLConnection) u.openConnection();
                conn.setDoInput(true);
                //允许对外输出数据
                conn.setDoOutput(true);
                conn.setUseCaches(false);
                conn.setDefaultUseCaches(false);
                conn.setRequestProperty("Host",host);
                conn.setRequestProperty("Content-Type","text/xml;charset=UTF-8");
                //soap
                conn.setRequestProperty("SOAPAction",SOAPAction);
                conn.setRequestProperty("Content-Length",String.valueOf(params.length()));
                conn.setRequestMethod("POST");
                //定义输出流
                OutputStream output = conn.getOutputStream();
                if(StringUtils.isNotBlank(params)){
                    byte[] b = params.getBytes("UTF-8");
                    //发送soap请求报文
                    output.write(b,0,b.length);
                    output.flush();
                    output.close();
                    //定义输入流,获取soap报文
                    InputStream input = conn.getInputStream();
                    //设置编码格式
                    result = IOUtils.toString(input,"UTF-8");
                    input.close();
                }
                System.out.println("请求返回报文:" + result);
            }catch (Exception e){
                System.out.println(e.getMessage());
            }
    
        }
    

    3.1参数说明:

    url:这个地址即wsdl文件地址去掉后缀  “?wsdl”。如此例就是:

    wsdl:

    http://xxx.xxx.xxx.xxx:8081/APIService.svc?wsdl

    url:

    http://xxx.xxx.xxx.xxx:8081/APIService.svc

    params:这个即是请求的参数

    host: 这个是对方的主机地址和端口号。 如此例为:  xxx.xxx.xxx.xxx:8081

    SOAPAction:具体service路径

     

    展开全文
  • java调用webservice接口 三种方法

    万次阅读 多人点赞 2018-09-05 17:40:42
    摘自其它:webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。今天搜索到了非常好的 webservice provider...
  • java调用webService接口的几种方法

    千次阅读 2019-07-24 10:56:15
    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口。 1.可以通过带有webservice插件的Eclipse直接生成调用...
  • webservice接口调用实例

    2017-08-10 17:51:36
    webservice接口调用实例,经个人验证可用
  • Java调用webservice上传文件

    千次阅读 2017-11-24 09:46:27
    responseSoap = webService(bytes, sub); /**  * 在这里写入读取的ASMX信息  */  public String webService(byte[] bytes, String fileExtension) {  String url=...
  • 接口名称: std::string SendVehiclePass(std::string VehiclePassInfo, struct xsd__base64... 我使用的Hutool,就可以在无任何依赖的情况下,实现简便的WebService请求,需要引入的pom文件: <dependency> <groupId>...
  • ``` String one="参数一"; String two="参数二"; String three="参数三" String four= "参数四"; try { Service service = new Service(); Call call1 = (Call) service.createCall();...
  • JAVA使用HttpClient调用webservice接口

    千次阅读 2020-03-26 11:36:28
    JAVA使用HttpClient调用webservice接口 关于HttpClient用法参考: HttpClient-4.5.2官方教程完整翻译 官方教程原文链接 HttpClient下载地址: 链接:https://pan.baidu.com/s/1ScuxtWBdUvh-0xcLZRaa1Q 提取码:gbqb...
  • 上一篇介绍了使用JAXBContent进行Bean、Xml转换,从而进行WebService调用,这种方法的弊处在于要程序员自己写Xml注解,还要自己发送请求,处理响应。 好在这个问题业界已经有现成的解决方案了,即CXF。这个东西用...
  • call.setTargetEndpointAddress(new java.net.URL(url)); //命名空间和调用接口的方法名 call.setOperationName(new javax.xml.namespace.QName("http://z****.com/", "method")); call.setUseSOAPAction...
  • JAVA Webservice接口 返回中文乱码

    千次阅读 2020-05-02 15:26:56
    最近调用Webservice接口时,遇到接收乱码的问题 最开始用soapUI测试看XML结果是正常的,返回结果大概是这样(只截取了json部分结果) {"state":0,"message":"流程启动成功","seqno":"202005020009"} 后来在JAVA...
  • java调用webservice接口 几种方法

    万次阅读 2016-12-06 14:34:03
    java调用webservice接口 几种方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,210
精华内容 12,884
关键字:

java请求webservice

java 订阅