java调用WebService(客户端)

Java客户端调用SOAP方式的WebService服务实现方式分析 在多系统交互中,有时候需要以Java作为客户端来调用SOAP方式的WebService服务,本文通过分析不同的调用方式,以Demo的形式,帮助读者在生产实践中选择合适的调用方式。本文JDK环境为JDK17。 阅读详情

java调用WebService(客户端) 看下了网上大部分都是写java来编写WS服务端,写了下JAVA的调用端。

WebService可以有Get、 Post、Soap、Document四种方式调用,以下是四种方式的参照说明。 name 属性 说明 HttpGet 添加HTTP GET协议 在追加到HTTP请求URL的查询字符串中传递的方法参数,格式为:?name1=value1&name2=value2...。返回值被当做简单的XML文档放入HTTP响应的正文中(没有<soap:Envelope>)。 HTTPPost 添加HTTP POST协议 在HTTP请求的正文中传递的方法参数,格式为:name1=value1&name2=value2...。返回值被当做简单的XML文档放入HTTP响应的正文中(没有< soap:Envelope>)。 HTTPSoap 添加Http Soap协议 Soap消息在HTTP请求的正文中发送;Soap响应在HTTP响应的正文中发送。 Documentation 添加特殊的Documentation协议 当在启用了此协议的情况下直接请求.asmx页时,Asp.Net运行Helper页创建HTML文档页,该文档页被传递到提出请求的客户端

对于SOAP协议多写了个CXF的调用(对于CXF必须有以下包:)

以下是调用代码

 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

/**
 * 功能描述:WebService调用
 * 
 */
public class ClientTest {

	/**
	 * 功能描述:HTTP-GET
	 * 
	 */
	public String get() {
		URL url;
		BufferedReader bin = null;
		StringBuilder result = new StringBuilder();
		try {
			String urlTemp = "http://www.webxml.com.cn//WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName="
					+ URLEncoder.encode("福建", "UTF-8");// URLEncoder用来参数编码
			url = new URL(urlTemp);
			InputStream in = url.openStream(); // 请求
			bin = new BufferedReader(new InputStreamReader(in, "UTF-8"));
			String s = null;
			while ((s = bin.readLine()) != null) {
				result.append(s);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (null != bin) {
				try {
					bin.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return result.toString();
	}

	/**
	 * 功能描述:HTTP-POST
	 * 
	 */
	public String post() {
		OutputStreamWriter out = null;
		StringBuilder sTotalString = new StringBuilder();
		try {
			URL urlTemp = new URL(
					"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity");
			URLConnection connection = urlTemp.openConnection();
			connection.setDoOutput(true);
			out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
			StringBuffer sb = new StringBuffer();
			sb.append("byProvinceName=福建");
			out.write(sb.toString());
			out.flush();
			String sCurrentLine;
			sCurrentLine = "";
			InputStream l_urlStream;
			l_urlStream = connection.getInputStream();// 请求
			BufferedReader l_reader = new BufferedReader(new InputStreamReader(
					l_urlStream));
			while ((sCurrentLine = l_reader.readLine()) != null) {
				sTotalString.append(sCurrentLine);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (null != out) {
				try {
					out.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return sTotalString.toString();
	}

	/**
	 * 功能描述: 请求 HTTP-SOAP
	 * 
	 */
	public String getSoapInputStream() {
		try {
			String soap = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><getSupportCity xmlns=\"http://WebXml.com.cn/\"><byProvinceName></byProvinceName></getSupportCity></soap:Body></soap:Envelope>";
			URL url = new URL(
					"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
			URLConnection conn = url.openConnection();
			conn.setUseCaches(false);
			conn.setDoInput(true);
			conn.setDoOutput(true);

			conn.setRequestProperty("Content-Length", Integer.toString(soap
					.length()));
			conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
			conn.setRequestProperty("SOAPAction",
					"http://WebXml.com.cn/getSupportCity");

			OutputStream os = conn.getOutputStream();
			OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");
			osw.write(soap);
			osw.flush();
			osw.close();
			StringBuilder sTotalString = new StringBuilder();
			String sCurrentLine = "";
			InputStream is = conn.getInputStream();
			BufferedReader l_reader = new BufferedReader(new InputStreamReader(
					is));
			while ((sCurrentLine = l_reader.readLine()) != null) {
				sTotalString.append(sCurrentLine);
			}
			return sTotalString.toString();
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}

	/**
	 * 功能描述:使用CXF 请求 HTTP-SOAP
	 * 
	 */
	public String soap() {
		JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory
				.newInstance();
		String url = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl";// http://www.fjyxd.com:17001/DefDispatcher/dispatche?wsdl
		Client clientTemp = clientFactory.createClient(url);
		Object[] arg;
		String result = "";
		try {
			arg = clientTemp.invoke("qqCheckOnline", "8698053");// 查询8698053在线状态,QQ号码
			// String,默认QQ号码:8698053。返回数据:String,Y
			// = 在线;N = 离线;E
			// = QQ号码错误;A =
			// 商业用户验证失败;V =
			// 免费用户超过数量
			result = (String) arg[0];
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 功能描述:调用
	 * 
	 */
	public static void main(String[] args) {
		ClientTest ct = new ClientTest();
		System.out.println("HTTP-GET结果:" + ct.get());
		System.out.println("HTTP-POST结果:" + ct.post());
		System.out.println("HTTP-SOAP结果:" + ct.getSoapInputStream());
		System.out.println("CXF HTTP-SOAP结果:" + ct.soap());
	}

}

java客户端调用 https 的webservice 证书 以 coremail 的服务器为例 私钥 /home/coremail/conf/server 公钥 /home/coremail/conf/server.crt Webservice JAVA 客户端 1. 添加新的密钥库 > cd $JAVA_HOME\jre\lib\security > keytool -import -keysto 阅读详情

相关推荐

JAVA客户端调用远程WebService服务示例

/** * 调用WebService服务测试 */ public class ParseJsonDataTest { private static final String CAPE_WSDL_ADDRESS = "http://XXXX/XXXX?wsdl"; private static final String CAPE_WEBSERVICE_ADDRES...

我的博客 1160

java对接webservice接口的4种方式

并配置环境变量,详细说明,请自行学习。

qq_49641620的博客 6650

Java Web Service的客户端实现

Java Web Service的客户端实现

关于webservice的三种java客户端对接方法

第一次写文章,所以里边会有些措辞或者描述不清楚的问题,请见谅 首先webservice大家肯定已经耳熟能详了,而且webservice属于比较古老的技术,但一些比较老的公司,由于架构的比较早,而且经历数次迭代,人员更替,旧的技术很难优化,所以难免会遇到对接webservice接口的需求。 对接webservice需要先了解下边的一些知识。 1、XML:(Extensible Markup L...

qq_16207635的博客 2292

MatGPT:在MATLAB中集成AI助手,实现代码生成与调试自动化

大语言模型(LLM)通过API接口为开发者提供了强大的自然语言理解和代码生成能力,其核心原理是基于海量数据训练的Transformer架构,能够根据上下文预测并生成连贯的文本或代码。这一技术为工程实践带来了革命性价值,特别是在科学计算和算法开发领域,能够显著提升开发效率,实现智能化的代码辅助和问题解答。在实际应用中,开发者常需在IDE与AI工具间频繁切换,导致工作流中断。MatGPT作为一个开源项目,通过深度集成ChatGPT API到MATLAB环境,有效解决了这一痛点。它支持多模态输入、预设提示词管理和

weixin_42388898的博客 502

VisionMaster Qt二次开发:图像获取、COM组件渲染与本地化存储实战

本文详细介绍了基于VisionMaster进行Qt二次开发的核心实战流程,涵盖环境搭建、方案加载、图像数据获取、COM组件渲染与本地化存储。重点解析了如何通过COM组件在Qt界面中实时显示图像,以及将VM图像数据转换为QImage并保存为本地文件的关键步骤与常见问题,为工业视觉项目开发提供稳定高效的解决方案。

weixin_29229261的博客 207

java webservice请求参数_Java调用WebService的方法总结

1、使用命令wsimport自动生成java代码wsimport是jdk自带的,可以根据wsdl文档生成客户端调用代码的工具.wsimport.exe位于JAVA_HOME\bin目录下。常用参数为:•-d - 将生成.class文件。默认参数。•-s - 将生成.java文件。•-p -将生成的类,放于指定的包下。示例:注意:-s不能分开,-s后面有个小点,用于指定源代码生成的目录。点即当前目...

weixin_42401178的博客 2248

DAGGER vs 传统模仿学习:为什么数据聚合能提升模型性能?

本文深入对比了DAGGER与传统模仿学习,揭示了传统方法因“分布不匹配”导致性能下降的根源。DAGGER通过动态的**数据聚合**机制,在智能体自身策略产生的状态分布上收集专家数据,从根本上解决了误差累积问题,从而显著提升了模型在实际部署中的鲁棒性和性能。

weixin_29170327的博客 234

Java 调用 WebService

1. Axis 调用 WebService 1.1 引入依赖 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.axis&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;axis&amp;lt;/artifactId&amp;gt;

null 1239

分组背包问题(MCKP)三大算法对比:贪心、Dyer-Zemel和动态规划谁更强?

本文深入对比了分组背包问题(MCKP)的三大主流算法:贪心算法、Dyer-Zemel算法和动态规划。通过分析各自的原理、实现及性能表现,揭示了贪心算法速度快但非最优,动态规划精确但受限于规模,而Dyer-Zemel算法则在效率与最优性间取得了最佳平衡,是解决中等至大规模MCKP问题的首选方案。

vscode6remote的博客 227

转录组分析中的Fastp和FastQC:如何快速检测数据质量并优化流程

本文深入探讨了转录组分析中数据质量控制的核心流程,重点介绍了Fastp和FastQC两款工具的组合应用。FastQC负责对原始测序数据进行全面质量评估,生成可视化报告;Fastp则能一站式完成接头切除、低质量序列过滤、长度筛选等关键质控步骤。文章提供了详细的参数解读、实战脚本和自动化流程构建指南,帮助研究人员快速检测数据质量并优化预处理流程,为下游的差异表达等分析奠定可靠基础。

weixin_28452161的博客 185

java实现webservice 自定义实体参数_你知道吗?webservice的接口做自动化,其实很简单...

大家做接口自动化的时候,测的大多数接口都是基于 http 类型协议的,在 python 中使用 requests 去请求接口还是非常简单的。最近有部分小伙伴反映在工作中碰到了 webservice 的接口,表示不知道怎么用 python 去做自动化。其实不管什么类型的接口实现自动化的思路都是一样的,在接口请求上会有一些有区别。webservice 是基于 SOAP 协议的,SOAP 协议其实就是在...

weixin_39842475的博客 1070

手把手教你用Chrome DevTools逆向分析抖音a_bogus参数(附完整日志插桩方法)

本文详细介绍了如何使用Chrome DevTools逆向分析抖音a_bogus参数的生成逻辑,包括XHR断点定位、日志插桩追踪和加密核心逻辑解析。通过实战案例,帮助开发者掌握逆向工程技巧,应对抖音接口的动态加密变化,特别适合研究dy接口和a_bogus参数的技术人员。

weixin_27741699的博客 791

java 用cxf方式实现的webservice,java客户端,C#客户端调用

流程: 1.新建一个java工程 2.建立WebService接口 3.接口的实现类 4.java客户端调用 5.C#端调用   下面开始: 所需的资料: apache-cxf-2.7.5  下载链接 http://download.youkuaiyun.com/detail/surehao/7005281 找相应的jar,导入项目   建立WebService接口: impor

2452

基于Lstm+transformer的刀具磨损预测实战

基于Lstm+transformer的刀具磨损预测实战

2907

〔重庆理工大学〕计算机组成原理课设报告--16位单周期CPU设计

本课程设计的实验平台为Altera Quartus II 软件和Altera Cyclone V Starter 工具箱。(1)Cyclone V是Altera FPGAs家族的一类,它面向低功耗应用。Cyclone V GX 5CGXFC5C6F27C7N 芯片有不同的转换器,按钮,LED灯,七段显示器,HDMI接口,SD卡读卡器以及其他链接等。Cyclone V GX 5CGXFC5C6F27C7N是Starter工具箱的重要组件。(2)测试台包含在测设备(DUT)和用于仿真的模拟输入。

Pretty Boy Fox的博客 1068

java webservice客户端调用_Java WebService客户端调用详解

服务器端开发:/system/programming/java/webservice/service-info.html根据webservice地址生成源码:F盘新建文件夹webservice,确认Java环境变量已经配置好wsimport -s "f:/webservice" http://localhost:8888/HelloService?wsdl可以看到生成俩个源文件: HelloS...

weixin_39517202的博客 551

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java代码webservice客户端的两种调用方式

import javax.xml.namespace.QName; import javax.xml.rpc.Call; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.Service; import javax.xml.rpc.ServiceException; import javax.xml.rpc.Serv

zzywwbs的博客 6280

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

java cxf 客户端_CXF 调用webservice客户端步骤

1、通过cxf用wsdl生成java客户端文件下载apache的cxf文件下本地,再用wsdl2java命令生成,并copy java到相应的目录 2、客户端代码@Testpublic void q30100(){//设置请求参数DTSaleArea2CityDistReq dtSaleArea2CityDistReq = new DTSaleArea2CityDistReq();dtSaleAr...

weixin_42676876的博客 598

Java客户端调用Https Webservice

Java 要调用远程Https webservice 必需具用远程服务器提供的客户端信任书及密钥. 将client.keystore和client.truststore拷贝到classes\test目录下. package test; import org.apache.axis.client.Call; import org.apache.axis.client.Service;

cookieweb的专栏 1万+

Java客户端调用SOAP WebService的深度分析与实践

概念: SOAP(Simple Object Access Protocol)是一种基于XML的消息传递协议,用于在网络上进行信息交换。WebService则是一种通过网络提供服务的架构模型,SOAP WebService特指使用SOAP协议的Web服务。Java客户端调用SOAP WebService涉及多个技术和概念,包括SOAP协议、WSDL文档、JAX-WS等。

N201871643的博客 1379

java cxf 客户端调用_CXF进行WebService客户端调用的两种方式

1、JaxWsDynamicClientFactory:JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();Client client = clientFactory.createClient("http://IP:端口/iemr/webservice/IEMRWebService?ws...

weixin_35796523的博客 663

Java 客户端调用HttS Webservice....

Java 客户端调用HttS Webservice....Java 要调用远程Https webservice 必需具用远程服务器提供的客户端信任书及密钥...将client.keystore和client.truststore拷贝到classes/test目录下. package test;import org.apache.axis.client.Call;import org.apache.

Box 的专栏 1614

Java实现调用WebService的客户端程序

WebService是为程序服务的,只在浏览器中访问WebService是没有意义的。因此,在本节使用Java实现了一个控制台程序来调用上一节发布的WebService。调用WebService的客户端代码如下: package client; import javax.xml.namespace.QName; import org.apache.axis2.addressing

yehangdx 954

asmx+java客户端生成_java 调用webservice (asmx) 客户端开发示例

这是本人第一次写博客,其实就是自己做个笔记,写的很粗糙,也希望能给跟我遇到同样问题的你一点帮助。因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前服务端一般会给个以http://xxx/services?wsdl地址的文件或者地址。这次对方给我个http://xxxx/service/getinfo.asmx 的连接,我就傻眼了,之前没有遇到过...

weixin_29169899的博客 1051
上一篇: ITF跆拳道正弦波动的原理
下一篇: Java多线程编程总结
JavaAlpha
博客等级 码龄18年 910粉丝 511原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值