php soap调用asp.net webservice

原文:php soap调用asp.net webservice

首先做一下准备工作,找到安装环境里的php.ini把;extension=php_soap.dll去掉前面的;。我这里使用的是wamp,php-php扩展里把php_soap启用就可以了。

一、用vs2008新建一个webservice:using System;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
    public Service () {

//如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

#region 返回一个字符串测试数据
    [WebMethod(Description = "测试方法")]
    public string trainNumber(string name)
    {
        return DateTime.Now.ToString()+"——"+name;
    }
    #endregion
    #region 返回一个整形
    [WebMethod(Description="测试方法")]
    public int trainInt(int ID)
    {
        return ID;
    }
    #endregion
}

二、使用iis发布webservice,并记下webservice地址http://localhost/SerPhp/Service.asmx

(发webservice和发布一般网站是一样的。)

三、新建一个php文件

3.1、定义一下变量,并赋值webservice的地址

$ws=http://localhost/SerPhp/Service.asmx?wsdl",这里的wsdl是一种通信模式

3.2、创建一个SoapClient对象 $client=new SoapClient($ws);

3.3、查看WebService的方法和方法里的参数需要的类型(这里可以使用var_dump输出,查看webservice的方法)

查看方法$client->__getFunctions()

查看方法参数的类型$client->__getTypes()

3.4、给所需要的参数赋值(需要说明的是:如果有多个参数时可以使用不$parameters,$parameters是我本人使用的,可以使用不参数名)

$parameters=array("name"=>"张三")

3.5、调用方法,并取得返回值:$username=$client->trainNumber($parameters)

3.6、打印返回的结果:这里提供三种方法var_dump($username)、print_r($username)、foreach($username as $key=>$var){echo var}

<?php
$ws="http://localhost/SerPhp/Service.asmx?wsdl";
$client=new SoapClient($ws);
echo "SOAP服务器提供的开放函数:";

echo ‘<pre>‘;
var_dump($client->__getFunctions());
echo ‘</pre>‘;

echo "SOAP服务器提供的Type:";

echo ‘<pre>‘;
var_dump($client->__getTypes());
echo ‘</pre>‘;

echo "执行trainNumber的结果";
try{
 $parameters1=array(‘name‘=>"张黎明");
 $parameters2=array("ID"=>123);//123带双引号不带都一样的啊
 $password=$client->trainInt($parameters2);
 $username=$client->trainNumber($parameters1);
}catch(SoapFault $fault){
 echo "Fault! code:".$fault->faultcode."string:".$fault->faultstring;
}
//echo(htmlspecialchars($client->__getLastRequest()));
echo "<pre>";
var_dump($password);
foreach($password as $key=>$val1){
 echo $val1;
}
echo "</br>";
var_dump($username);
print_r($username);
foreach($username as $key=>$val){
 echo $val;
}
echo "</pre>";
?>

时间: 2024-10-17 14:32:25

php soap调用asp.net webservice的相关文章

php 如何利用 soap调用.Net的WebService asmx文件

原文:php 如何利用 soap调用.Net的WebService asmx文件 最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需要测试一下php版本对它的调用,经过各种探索, 相关的PHP调用webservice的过程如下: 1.打开php相关扩展: 找到配置文件php.ini 文件, 打开以下扩展 extension = php_soap.dllextension = php_curl.dllextension = php_openssl.dll 2.php代

Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)

原文:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇) 老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的各种数据类型做了一个总结! 本文章没有什么高难度技术,就是记录一下,汇总一下,以便以后需要时查看! 本总结牵涉的数据类型,主要有: string,int这样的基本数据类型 ClassA这样的自定义类 List<ClassA>这样的集合类型 Dictionary这样的字典类型数据 DataSet这样

PHP使用SOAP调用.net的WebService数据

需要和一个.net系统进行数据交换,对方提供了一个WebService接口,使用PHP如何调用这个数据呢,下面就看看使用SOAP调用的方法吧 这个与一般的PHP POST或GET传值再查库拿数据的思路有点不一样,需要用到SOAP模块,处理方法也很简单,就是有一些需要注意的事情.首先确认你的PHP.ini开启了.SOAP,就是 extension=php_soap.dll 这前面的分号去咯.代码很简单: 复制代码代码如下: <?php $client = new SoapClient('http:

使用jQuery调用ASP.NET WebService的简易教程

鉴于使用Javascript调用Web Service配置略麻烦,所以记录一下. 1. 新建一个Web服务(WebService.asmx) 2. 取消注释// [System.Web.Script.Services.ScriptService] 3. 在public string HelloWorld()方法前加上[ScriptMethod(ResponseFormat = ResponseFormat.Json)]并且需要using System.Web.Script.Services; 4

C# ASP.NET Webservice调用外部exe无效的解决方法

最近用asp.net做webservice,其中有个功能是调用执行外部的exe(类似cmd中执行),但执行Process.Start之后就没有结果,同样代码在winform下正常,折腾两天终于找到解决方法 本文参考了以下网页,十分感谢 http://bbs.csdn.net/topics/300053869 http://blog.163.com/[email protected]/blog/static/15737970200862331842368/ 环境:win7 sp1 64位 以及II

jQuery调用ASP.NET的WebService

经常需要使用客户端脚本调用net的WebService,比较常用的是在ScriptManager脚本管理器的环境下使用回调调用WebService的方法,可是这些必须在aspx的页面中进行,难免有些限制. jQuery库是我们比较常用的JavaScript库,入门简单,功能强大,对Ajax的支持比较友好.使用jQuery调用net的WebService也是经常遇到的.现将常见调用类型总结如下: 1.环境 jQuery 1.3.2 .net framework 2.0 Asp.net ajax 1

python实现建立soap通信(调用及测试webservice接口)

实现代码如下: #调用及测试webservice接口 import requests class SoapConnect: def get_soap(self,url,data): r = requests.post(url,data) print(r.text) if __name__ == '__main__': u = 'http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo' d = {'mobile

SOAP webserivce 和 RESTful webservice 对比及区别

简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于"通用"传输协议是 SOAP的一个优点.它还支持从消息系统到远程过程调用(Remote Procedure Call,RPC)等大量的应用程序.SOAP提供了一系列的标准,如WSRM(WS-Reliable Messaging)形

关于安卓调用C#的WebService上传图片问题(不使用ksoap2)

============问题描述============ 小弟初学安卓开发.最近需要做一个图片上传的功能. 我是用java开发安卓,调用C#的WebService.在网上找到一大堆资料,几乎全部是用ksoap2包的. 请注意,我想做的是不用ksoap包的. 我现在的方法是从android端用读取到要上传的图片,用Base64编码成字节流的字符串,通过调用webservice把该字符串作为参数传到服务器端,服务端解码该字符串,最后保存到相应的路径下.整个上传过程的关键就是以字节流的字符串进行数据传