scs653298 发表于 2015-8-24 09:09:16

PHP调用(C#)WebService

  1.打开php相关扩展:
  找到配置文件php.ini 文件, 打开以下扩展



extension = php_soap.dll
extension = php_curl.dll
extension = php_openssl.dll
  
  2.php代码如下:



<?php
header("content-type:text/html;charset=utf-8");
$client = new SoapClient("http://localhost:5575/WebSite/newService.asmx?WSDL");
//本行测试不可行 $client = new SoapClient(" http://192.168.3.178:8080/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//参数这样传递 先包装一下
$param = array('uname'=>'test3','upass'=>'123');
//调用必须用__soapCall
$p = $client->__soapCall('HelloWorld',array('parameters' => $param));
print_r($p->HelloWorldResult);//这里先输出一下变量$p,看看是什么类型。
?>
  
  注意,在php调用某个方法后,其soap对象,就会自动产生一个Result方法,以方便显示调用结果,如上面的 被调用端的WebService的 “HelloWorld”方法 ,
  调用端就有相应的“HelloWorldResult”方法。
  
  .NET部分 webservice




public string HelloWorld(string uname,string upass)
{
       return "Hello World" + "-" + uname + "-" + upass;
}
  
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  返回数组




    public string[] HelloWorld2(string uname, string upass)
    {
      return new string[] { "Hello World" + "-" + uname + "-" + upass, "abab" };
    }
  



Array
(
    => Array
      (
             => Hello World-test3-123
             => abab
      )
)
  



<?php
header("content-type:text/html;charset=utf-8");
$client = new SoapClient("http://localhost:5575/WebSite/newService.asmx?WSDL");
//本行测试不可行 $client = new SoapClient(" http://192.168.3.178:8080/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//参数这样传递 先包装一下
$param = array('uname'=>'test3','upass'=>'123');
//调用必须用__soapCall
$p = $client->__soapCall('HelloWorld2',array('parameters' => $param));
$aa= (array)$p->HelloWorld2Result;
print_r($aa);//这里先输出一下变量$p,看看是什么类型。
?>
  


  
页: [1]
查看完整版本: PHP调用(C#)WebService