700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php soap调用asp.net webservice

php soap调用asp.net webservice

时间:2023-12-13 23:59:04

相关推荐

php soap调用asp.net webservice

php soap调用 webservice 原文:php soap调用 webservice

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

一、用vs新建一个webservice:using System;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.Xml.Linq;

[WebService(Namespace = "/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// 若要允许使用 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>";

?>

posted on -12-03 10:32 NET未来之路 阅读(...) 评论(...) 编辑 收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。