调用webService的几种方式

C#调用WebService的方法 上面使用静态引用的方式调用WebService,但是这种方式有一个缺点:如果发布的WebService地址改变,那么就要重新添加WebService的引用。在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。1.我们在配置文件里面添加配置,把WebService的地址、WebService提供的类名、要调用的方法名称,都写在配置文件里面。这种方式是通过添加静态引用的方式调用WebService。 阅读详情

调用webService的几种方式
方式一(比较通用):

		//webService地址
        String url = "xxxx/xxxService?wsdl";
        //创建一个service
        Service service = new Service();
        //创建一个Call对象
        Call call = (Call) service.createCall();
        //设置地址
        call.setTargetEndpointAddress(url);
        //WSDL里面描述的接口名
        call.setOperationName("queryPlan");
        //访问接口参数和参数类型及参数模型IN, OUT or INOUT(params为参数List<Map<String,Object>> params = new ArrayList<>();)
       Object[] obj = new Object[params.size()];
       for (int i = 0; i < params.size(); i++) {
           Map<String, Object> map = params.get(i);
           call.addParameter( map.get("paramName"), map.get("paramType"),
                        ParameterMode.IN);
           obj[i] = map.get("paramValue");
        }
        //设置返回值类型
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
        String response = (String) call.invoke(new Object[]{stCompanyCode});
        System.out.println("response = " + response);

方式二:

		LinkedHashMap<String, Object> params = new LinkedHashMap<>();
		String url = "xxxx/xxxService?wsdl";
        String request1 = RestClientM2T3.doWsdlRequest(url, "queryPlan", params);
        Document document = DocumentHelper.parseText(request1);
        Node result = document.selectSingleNode("/soap:Envelope//return");
        JSONArray json = JSONArray.fromObject(result.getText());
        System.out.println("response = " + json.toString());


		public static String doWsdlRequest(String url1,String method,  LinkedHashMap<String, Object> params) throws Exception {
			HttpClient httpclient = getHttpClient(BASE_URL.startsWith("https://"));
			HttpPost httpPost = new HttpPost(BASE_URL);
			String content = APP_ID + url1+ System.currentTimeMillis() / 1000;
			String signature = encrypt(content);
			httpPost.addHeader("appid", APP_ID);
			httpPost.addHeader("apiname", url1);
			httpPost.addHeader("signature", signature);

			if (params!=null) {
				StringBuffer xml = new StringBuffer("");
				xml.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:your=\"http://yourcompany.com/\">\n" +
						"   <soapenv:Header/>\n" +
						"   <soapenv:Body>\n" +
						"      <your:"+method+">\n");

				int index= 0;
				for (Map.Entry<String, Object> entry : params.entrySet()) {
					String paramValue = entry.getValue()==null?"": entry.getValue().toString();
					xml.append("<arg"+index +">"+paramValue+"</arg"+index +">\n");
					index++;
				}

				xml.append("</your:"+method+">\n");
				xml.append("</soapenv:Body>\n");
				xml.append("</soapenv:Envelope>\n");
				httpPost.setEntity(new StringEntity(xml.toString(), Charset.forName("UTF-8")));
			}

			httpPost.setHeader("Content-Type", "text/xml; charset=utf-8");
			HttpResponse httpResponse = httpclient.execute(httpPost);
			HttpEntity httpEntity = httpResponse.getEntity();
			InputStream is = httpEntity.getContent();
			byte[] bytes = toByteArray(is);
			is.close();
			String s = new String(bytes, "UTF-8");
			StatusLine statusLine = httpResponse.getStatusLine();
			httpPost.releaseConnection();
			if (statusLine.getStatusCode() == 200) {
				System.out.println(s);
				return s;
			} else {
				System.out.println(statusLine.getStatusCode() + ":" + statusLine.getReasonPhrase());
				throw new RuntimeException(s);
			}
			return null;
		}
WebService客户端的几种调用方式 //--------------------------------------------------------------------------- #include #pragma hdrstop #include #include #include using namespace std; #include "MSSOAPLib30_TLB.h" //-- 阅读详情

相关推荐

pb 调用webservice的几种方式简述

在pb开发中,经常会有调用第三方webservice的情况,因为第三方在开发的时候现在的访问模式的不同,从而导致pb调用的方式也不同,对与首次利用pb调用webservice或对调用方式不清楚的开发人员,往往会出现 会出现调用方式选择不对,从而导致无法访问webservice,或能够访问成功,但调用服务的方法时却一直返回错误等情况,下面将简述不同的webservice对应的调用方式。...

墨染风华不染尘 3394

WebService接口的生成和调用(WebService接口)

目录 一:WebService的服务端发布 1:发布web程序服务端发布 2:本地发布 二:Webservice客户端调用: 1:本地生成代码,直接调用: 2、利用dos命令生成代码,和第一种基本一致 3:利用apache的AXIS直接调用远程的web service 4:service编程实现调用 5:Ht......

苍煜 13万+

Java调用WebService的几种方式

<dependencies> <!--spring web Service的包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> &l..

wangli1281的博客 1万+

webservice的几种调用方式

1、基本概念 1.1什么是Web Services? 举个例子,如果我们要在自己的程序里面展示天气预报,那怎么弄?正确的做法是我们发送一个请求到一个系统,他会给我们返回来天气情况。这个就是一个webservice webService定义:即Web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术 1.2.Web Services 平台元素 SOAP:简易对象访问协议,s...

RuiKe的博客 2万+

vue 调用webservice_调用webService的几种方式

转自:http://blog.youkuaiyun.com/u011165335/article/details/51345224一、概览方式1:HttpClient:可以用来调用webservie服务,也可以抓取网页数据版本1:HttpClient3.0.x版本2:HttpClient4.x.x(目前最新4.5.2)这2个版本的使用方式不一样;变动较大方式2:纯Java(自带API) jws方式3...

weixin_39606575的博客 4602

如何调用WebService

二,在项目中添加服务引用,.NET会自动生成与服务接口一致的API代码,我们只需要调用这些自动生成的代码,便可以获取服务结果。这与RPC原理一样,我们不需要关注中间的数据发送,数据解析等,就像调用本地方法一样。可以看到WebService的所有服务API,API的描述信息。点击API,进入该API的调试界面,输入方法参数,点击调用,即可看到API的运行结果。一,首先我们要验证这个地址是不是正确的有效的地址,其次我们要查看有哪些服务,每个API的用法,甚至可以执行API查看运行结果。【图:输入服务信息】...

4810

Java开发或调用WebService的几种方式

Java开发或调用WebService的几种方式,如jdk自带的JAX-WS、Apache Axis1.4、ApacheCXF等

yuanjinshenglife的专栏 7130

WebService的几种不同实现方式

NULL 博文链接:https://longdechuanren.iteye.com/blog/609303

Webservice的几种调用方式

第一种:客户端方式wsimport 【掌握】 案例:手机号码归属地查询WEB服务 案例:天气查询WEB服务 第二种:Service方式 【了解】 案例:天气查询WEB服务 第三种:HTTPURLConnection方式【代码自己发送http请求-掌握】 案例:手机号码归属地查询WEB服务 第四种:Ajax调用方式【不要求掌握,原理与第三种一样,只不过是用js写】 n种:IOS:AFN…… 一、第一...

鸭梨山大山大的博客 1747

利用Python搭建用户画像系统

用户画像是当下很多企业都会提及的概念,多数情况下会和大数据以及营销挂钩。本文将对用户画像的相关知识进行进行简单的介绍,并利用Python去实现一个简单的用户画像系统。 1.什么是用户画像 用户画像可以理解成是海量数据的标签,根据用户的目标、行为和观点的差异,将他们区分为不同的类型,然后每种类型中抽取出典型特征,赋予名字、照片、一些人口统计学要素、场景等描述,形成一个人物原型 。 用户画像 =...

黎荣恒的博客 3万+

EtherCAT简介

EtherCAT(EtherNet Control Automation Technology)是由德国公司BECKHOFF公司于2003年提出的实时工业以太网技术。其具有高速、高数据有效率的特点,支持多种设备的连接拓扑结构。从站节点使用专用的控制芯片,例如:microchip公司的Lan9252、BECKHOFF公司的ET1100等ESC(EtherCAT slave controller)芯片。主站的搭建方式有很多,例如:开源主站IGH、SOEM、商业化主站TwinCAT等。

m0_73482095的博客 1万+

调用WebService接口几种常用方式

添加链接描述

qq_45780653的博客 908

MTK平台高效部署Qwen2.5大模型:从转换到推理全流程解析

本文详细解析了在联发科(MTK)NeuroPilot平台上高效部署Qwen2.5大模型的全流程。内容涵盖从环境搭建、模型转换、量化优化到编译部署与上机推理的完整步骤,重点分享了模型转换与模型运行的关键实践与避坑指南,旨在帮助开发者将大语言模型成功集成至移动及边缘设备。

zeta9的博客 376

webservice几种调用方式总结

参考资料:https://blog.youkuaiyun.com/u010682330/article/details/81110542 方法一:使用JaxWsDynamicClientFactory调用WebService public static Object call(String wsdl,String method,String requestStr){ JaxWsDynamicCli...

xinjirufen1的专栏 852

Omnibox 2.11 NAS部署指南:家庭影音中枢的轻量化落地实践

家庭影音平台本质是本地化内容调度中枢,其核心在于聚合NAS媒体库、统一管理直播/IPTV/音频/视频等多源内容,并通过智能元数据匹配与硬解加速实现零门槛播放体验。技术原理上依赖Java轻量Web容器(Jetty)、SQLite嵌入式数据库双缓存架构,以及宿主机FFmpeg动态链接与HTTP/2直播代理治理能力。该方案显著降低4K播放卡顿、EPG加载失败、海报缺失等高频问题,适用于群晖、飞牛、绿联等主流NAS设备,尤其适配ARM64芯片与Realtek网卡等国产硬件生态。本文聚焦Omnibox 2.11在真实

weixin_30846347的博客 467

【N32L40X】学习笔记12-规则组+注入组+外部触发启动

使用定时器触发规则通道开始采集数据,采集完成后使用dma传输数据,并启动注入通道转换数据,注入通道转换完成后产生中断,中断中读物注入通道数据。

Car12 422

调用WebService的几种方式

一、概览 方式1: HttpClient:可以用来调用webservie服务,也可以抓取网页数据 版本1:HttpClient3.0.x 版本2:HttpClient4.x.x(目前最新4.5.2) 这2个版本的使用方式不一样;变动较大 方式2:纯java(自带API)      jws 方式3:cxf框架 方式4:axis2框架

泽宇的博客 3万+

基于Simulink的电力电子负载特性模拟仿真实例

电阻性负载是最简单的负载形式,其阻抗为纯电阻,电流和电压之间的关系符合欧姆定律。电阻性负载的特点是消耗能量,不会存储能量。本示例将以一个典型的直流电源供电系统为例,展示如何利用Simulink进行不同负载特性的仿真模拟。直流电源:提供固定电压输入。逆变器(可选):根据需要产生PWM调制信号,驱动负载。负载模块:模拟不同类型的负载特性,如电阻性负载、电感性负载和容性负载。测量模块:用于观察负载上的电压和电流波形。系统架构视图plaintext深色版本v| || |

xiaoheshang_123的博客 427

动态调用WebService接口的几种方式

一、什么是WebService? 这里就不再赘述了,想要了解的====》传送门 二、为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过来就行调用的,步骤如下: 1.找到引用,右击添加服务引用,找到高级,添加web引用,添加之后就可以直接调用里面的方法。 以上这种方法是最简单粗暴的一种方式。当然在开发中总是不那么如意,以上方式是在本机直接可以访问服务的地址,假如在本机不能直接访问WebService,那么就会有些蛋疼..

build2024 3679

Python爬虫实战:手把手教你如何抓取农作物品种名录,构建标准化种业索引数据库!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 290

vscode的launch:program ‘‘ does not exist

如图 一般是由于launch.json文件没有配置好的缘故。在右下角的ADD configuration如选第二个登录: 看到program这一栏,这一栏很重要,一般是选择你CMakelist,编译出来的可执行文件 看我CMakelist, 我生成的可执行文件是test_,所以路径可以这样输入: 我在之前cmake的时候已经有了test_这个文件了 然后就可以运...

狂小虎/Anthony Dave的博客 KuangXiaoHu's Blogs 5万+

vue 调用webservice_动态调用WebService接口的几种方式

一、什么是WebService?这里就不再赘述了,想要了解的====》传送门二、为什么要动态调用WebService接口?一般在C#开发中调用webService服务中的接口都是通过引用过来就行调用的,步骤如下:1.找到引用,右击添加服务引用,找到高级,添加web引用,添加之后就可以直接调用里面的方法。以上这种方法是最简单粗暴的一种方式。当然在开发中总是不那么如意,以上方式是在本机直接可以访问服务...

weixin_39940913的博客 2914

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 调取第三方接口的post及get方法
下一篇: ibatis和mybatis的简单区别
~~Whd
博客等级 码龄7年 2粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~~Whd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值