一个php创建webservice,并通过c#调用的真实实例(转)
https://www.cnblogs.com/sequh/archive/2015/09/18/4819832.html
最近需要用php创建webservice供C#和JAVA来调用,通过3天的搜索和尝试,终于成功在C#下调用,JAVA的调用还没开始,为防止忘记,在这里记录下来全过程。
本文参考了许多文章,文中也采用了其中的示例。
本文目录如下
一、php创建webservice
二、生成.wsdl文件
三、c#调用php的webservice

一、php创建webservice
1、php环境
我用的是windows的apache,php.ini文件中 extension=php_soap.dll 去掉注释即可,前提是已经安装了 php_soap.dll。
环境测试,在cmd窗口中输入如下命令来检测soap是否正常
c:\>php --ini ;用来查看ini文件中的soap模块是否正常,它和phpinfo()看到的未必一致
c:\>php -i |findstr "soap" ;用来看soap模块是否正常
c:\>php -r "new SoapClient('http://localhost/wsdl/person.wsdl');" ;用来直接运行soap
2、php服务端文件(TestWebService.php)
二、生成.wsdl文件
本来我想简单一点,用SoapDiscovery.class.php来生成,可是总是出现各种奇葩问题;迫不得已安装了Zend Studio12.5,可是还是出现另外的奇葩问题;最终我找到一个可行的方案,是用vs2010来生成,C#调用没有问题。
1、打开vs2010,新建项目-ASP.NET空Web应用程序;
2、解决方案资源管理器-项目(右键)-添加-新建项-web服务,名称修改为TestWebService.asmx,代码如下:
HelloWorld()和GetArray()是我们希望暴露的方法,我写成空方法了。
3、F5运行,在弹出的IE浏览器中复制运行的url地址
http://localhost:63463/TestWebService.asmx
打开一个新的IE浏览器窗口,粘贴并修改为,然后回车,此时窗口会展示wsdl文件的xml格式内容:
http://localhost:63463/TestWebService.asmx?wsdl
4、点击IE浏览器的文件-另存为菜单,保存为TestWebService.wsdl文件,放到和TestWebService.php同目录下。
代码如下:
把 http://localhost:63463/TestWebService.asmx 修改为你最终要访问的网址,我的是:
http://192.168.1.5/wsdl/006/TestWebService.php
三、c#调用php的webservice
1、新建网站-ASP.NET网站;
2、解决方案资源管理器-项目(右键)-添加Web引用,在URL中输入:
http://192.168.1.5/wsdl/006/TestWebService.php?wsdl
会显示出如下窗口:

点击[添加引用]
3、修改Default.aspx.cs代码为:
4、CTRL+F5运行,看到最上面出现“welcome to dongzi world”,表示成功调用!

一个php创建webservice,并通过c#调用的真实实例(转)的更多相关文章
- 一个php创建webservice,并通过c#调用的真实实例
最近需要用php创建webservice供C#和JAVA来调用,通过3天的搜索和尝试,终于成功在C#下调用,JAVA的调用还没开始,为防止忘记,在这里记录下来全过程. 本文参考了许多文章,文中也采用了 ...
- 如何使用C#创建WebService
使用C#创建WebService,服务端的webservice是必须,中间的soap,Xml我们不用去关心.下面是使用C#创建WebService的简单介绍. AD:51CTO技术沙龙 | 赋予APP ...
- (转)Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- C#中WebService的创建、部署和调用的简单实例
webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice的例子. 一:WebService的创建开发 先新建一 ...
- 一个简单的webservice的demo(下)winform异步调用webservice
绕了一大圈,又开始接触winform的项目来了,虽然很小吧.写一个winform的异步调用webservice的demo,还是简单的. 一个简单的Webservice的demo,简单模拟服务 一个简单 ...
- 一个简单的Webservice的demo(中)_前端页面调用
首先新建项目,这里有两种调用方式,为了能方便理解,新建页面WebserviceTest如下图: 先引用写好的服务,这里用上次写好的服务.见上次写的一个简单的Webservice的demo,简单模拟服务 ...
- 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。
22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...
- Axis2创建WebService服务端接口+SoupUI以及Client端demo测试调用
第一步:引入axis2相关jar包,如果是pom项目,直接在pom文件中引入依赖就好 <dependency> <groupId>org.apache.axis2</gr ...
随机推荐
- netty: marshalling传递对象,传输附件GzipUtils
netty: marshalling传递对象,传输附件GzipUtils 前端与服务端传输文件时,需要双方需要进行解压缩,也就是Java序列化.可以使用java进行对象序列化,netty去传输,但ja ...
- Linux 格式化磁盘
格式化磁盘: mkfs -t ext4 /dev/sdb 初始化磁盘 mkfs.ext4 /dev/sdb
- Openwrt路由器上安装python
在路由器安装python之前,还是经过了一番折腾的.淘宝上买了个已经刷好系统的小米迷你路由器,但里面安装的不是预期的Pandorbox,而是LEDE. 这个固件已经带了大量自带的软件,128的内存实在 ...
- 在运维中的shell经验总结
来自良许Linux公众号 编写 脚本开头部分应有脚本功能说明.参数使用说明.作者姓名.创建/修改日期.版本信息,格式为: 脚本编写时,注意格式对齐,如所有的循环或者判断语句前后的语句进行对齐,以及ca ...
- 洛谷P5017摆渡车
题目 一道做法多种多样的题,DP做法的状态也很多. 我用\(dp[i]\)表示在第i秒发车的时间和,然后dp方程就很好写了 \(dp[i] = dp[j] + i车的等待时间\)j属于i-2m ~ i ...
- 《挑战30天C++入门极限》在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。
在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子. 以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址. #include <std ...
- golang-flag - 命令行参数解析
flag - 命令行参数解析 在写命令行程序(工具.server)时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自己写代码解析, ...
- 2019强网杯web upload writeup及关键思路
<?phpnamespace app\web\controller; class Profile{ public $checker; public $filename_tmp; ...
- python中is 和== 比较的区别?
is 比较两个对象的内存地址是否相同, == 比较连个对象的数据是否相等
- [WEB安全]无回显代码执行【转载】
原作者:AdminTony 原文链接:http://www.admintony.com/无回显代码执行利用方法.html 在Root-Me上有一道代码执行的题目,其链接为题目链接 0x01 简介 打开 ...