• PHP调用WCF提供的方法


    一、准备工作

             1、安装wampserver:过程略

             2、配置wampserver:

                                              

                       2.1打开php.ini文件,去掉 ;extension=php_soap.dll 这里那个分号。

               也有说把这个 ;extension=php_openssl.dll前面的分号也去掉的。

                 2.2 如上图,将php_soap打上√。

           

           2.3 如上图,打开httpd.conf文件,找到Listen 80 ,将80端口改成一个较大的端口,如8000。因为80端口也能别的程序用着。

              在这个directory里面有php页面。Index.php就是默认的页面。在浏览器里输入  http://localhost:8000/   会进入默认的首页

    二、建立WCF服务

         可以直接在Web项目里,右键—添加---新建项---wcf服务,会生成如下两个文件。

        

         在这两个文件中进行测试。上面这样操作省了配置,还有启动服务。只有运行Web项目,服务就起来了。

         注意事项:接口和实现类里面对应方法的参数名要一致。

         如下, 参数id名要一样。Article是一个文章类

    在IService1.cs中:

          [OperationContract]

    Article GetArticle(string id);

    在Service1.svc中:

           Public  Article GetArticle(string id)  

                    {

                                //do something

    }

                   

    三、PHP调用WCF中的方法

        Php可以调用的C#方法格式(已测试):

                       下面是c#方法格式

                       Public  string   Fun();

                     Public  string   Fun(string  str) ;  //这个只测过传string和int类型,参数数量可以多个。

            Public  Article  GetArticle(string id);

            Publis  String[]   GetStrs();

            Public  List<Article>   GetArticleList(string  flag);

            Public  void  AddArticle(Article  art);

            再次强调,参数名要和对应接口里的参数名一致。

           --------------------------------------------------------------------------------------------------------------------

                    Php调用:

    【Public  void  AddArticle(Article  art)】

    说明:下面的服务地址,可以在Service1.svc文件上右键—浏览器查看

             <?php

    $client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

               $result= $client->AddArticle(

    array (

    'art' => array (

    'TITLE' => '新建的php文章标题'

    )

    ));

    ?>

    注意art是Article类的一个实例  , TITLE是Article类中的一个属性。

    【Public  string   Fun(string  str);】

             <?php

    $client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

               $obj->str="3";

    $result= $client-> Fun ($obj);

    echo $ result -> FunResult;

    ?>

    注意art  , TITLE是Article类中的一个属性。

    【Public  Article  GetArticle(string id);】

    <?php

    $client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

    $obj->id="3";

       $result= $client->GetArticle($obj);

    echo var_export($result->GetArticleResult->TITLE);

    echo "<br/>";

    echo var_export($result->GetArticleResult->AUTHOR);

    ?>

    注意:TITLE和AUTHOR是Article类的两个属性。

    【Public  List<Article>   GetArticleList(string  flag);】

    $client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

    $obj-> flag ="3";

    $result= $client-> GetArticleList ($obj);

               echo var_export($result-> GetArticleListResult-> Article);

               echo var_export($result-> GetArticleListResult -> Article [0]-> TITLE);

     

    【Publis  String[]   GetStrs();】

    $client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

    $result =$client->GetStrs();

    $aa= $result->GetStrsResult;   //输出整个数组

    //$aa= $result->GetStrsResult->string[0];   //输出数组中第0项

     print_r( $aa);

  • 相关阅读:
    Servlet系列教材 (九)- 基础
    Servlet系列教材 (八)- 基础
    Servlet系列教材 (七)- 基础
    Servlet系列教材 (六)- 基础
    Servlet系列教材 (五)- 基础
    Servlet系列教材 (四)- 基础
    Servlet系列教材 (三)- 基础
    Servlet系列教材 (二)- 基础
    Servlet系列教材 (一)- 基础
    Tomcat系列教材 (八)- 部署J2EE应用
  • 原文地址:https://www.cnblogs.com/lanshanke/p/4899291.html
Copyright © 2020-2023  润新知