php soap调用asp.net webservice

简介: 原文:php soap调用asp.net webservice 首先做一下准备工作,找到安装环境里的php.ini把;extension=php_soap.dll去掉前面的;。我这里使用的是wamp,php-php扩展里把php_soap启用就可以了。
原文: 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>";
?>

目录
相关文章
|
3月前
|
PHP Windows
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
php扩展com_dndnet(PHP与.NET框架进行交互)
|
11月前
|
开发框架 .NET Apache
301重定向代码合集(iis,asp,php,asp.net,apache)
301重定向代码合集(iis,asp,php,asp.net,apache)
274 0
|
开发框架 JavaScript 前端开发
谈谈ASP、PHP和JSP的优缺点,底层原理是什么?
谈谈ASP、PHP和JSP的优缺点,底层原理是什么?
184 0
|
PHP Android开发 Python
php调用adb命令,php使用adb控制安卓手机
php调用adb命令,php使用adb控制安卓手机
358 0
|
开发框架 .NET Unix
为什么不用asp而用php开发网站
为什么不用asp而用php开发网站
101 0
|
开发框架 .NET Unix
为什么不用asp而用php开发网站
为什么不用asp而用php开发网站
93 0
|
域名解析 弹性计算 Linux
PHP SDK 的安装与调用
Alibaba Cloud SDK for PHP是支持PHP开发者快速访问阿里云服务的开发包,由Alibaba Cloud Client for PHP提供底层支持。Alibaba Cloud SDK for PHP让您不用复杂编程即可访问云服务器、云数据库RDS和云监控等多个阿里云服务。本文将为大家介绍PHP SDK的安装与调用过程。
2097 0
PHP SDK 的安装与调用
|
JSON Java API
PHP 调用第三方API接口 、带参数跳转PHP
PHP 调用第三方API接口 、带参数跳转PHP
843 0
PHP 调用第三方API接口 、带参数跳转PHP
|
IDE PHP 开发工具
地址标准化中ExtractAddress接口中php的调用
地址标准化中ExtractAddress接口中php的调用
362 0
地址标准化中ExtractAddress接口中php的调用
|
搜索推荐 PHP
PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
118 0