上海大学乐乎博客 > 堕落の空间 > PHP > PHP调用C#写的Web Service

2008/5/1 20:26:08 | PHP调用C#写的Web Service

PHP直接调用自己的可以,调用C#写的SOAP的东西就不行,网上查了下是因为MS又没遵守标准。。
PHP可以通过修改php.ini文件中extension=php_soap.dll来使用soap组件,不过要调用C#的Web Service,需要另外下个PHP的开源库NuSOAP。

require_once('nusoap/nusoap.php');
$client = new nusoap_client("http://service.undts.com/service.asmx?WSDL", true);
$client->soap_defencoding = 'UTF-8';   //不传递中文参数的话这行没有也行
$client->decode_utf8 = false;
$params = array(
    'cityId' => '1'
);
$result = $client->call('GetAreaById', array('parameters' =>$params), 'http://www.undts.com', 'http://www.undts.com/GetAreaById');
echo '<pre>'; print_r($result); echo '</pre>';

直接调用http://service.undts.com/service.asmx这里是不行的,传不了参数。总体上还是很简单的。PHP已经PARSE好XML的参数了,应该说使用成熟的类库对加快开发进度是很有好处的。OK,最后给出输出结果:

Array
(
    [GetAreaByIdResult] => Array
        (
            [schema] => Array
                (
                    [element] => Array
                        (
                            [complexType] => Array
                                (
                                    [choice] => Array
                                        (
                                            [element] => Array
                                                (
                                                    [complexType] => Array
                                                        (
                                                            [sequence] => Array
                                                                (
                                                                    [element] => Array
                                                                        (
                                                                            [0] => Array
                                                                                (
                                                                                    [!name] => SITEID
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                            [1] => Array
                                                                                (
                                                                                    [!name] => AREAID
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                            [2] => Array
                                                                                (
                                                                                    [!name] => AREABRNAME
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                            [3] => Array
                                                                                (
                                                                                    [!name] => AREANAME
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                        )

                                                                )

                                                        )

                                                    [!name] => Table
                                                )

                                            [!minOccurs] => 0
                                            [!maxOccurs] => unbounded
                                        )

                                )

                            [!name] => NewDataSet
                            [!msdata:IsDataSet] => true
                            [!msdata:UseCurrentLocale] => true
                        )

                    [!id] => NewDataSet
                )

            [diffgram] => Array
                (
                    [NewDataSet] => Array
                        (
                            [Table] => Array
                                (
                                    [SITEID] => 0         
                                    [AREAID] => 01              
                                    [AREABRNAME] => 上海
                                    [AREANAME] => 上海
                                    [!diffgr:id] => Table1
                                    [!msdata:rowOrder] => 0
                                )

                        )

                )

        )

)

评论

怎么回事?
你怎么在我的上面发文章?
你怎么知道我密码~》/
`你怎么也叫堕落の空间?
、毛毛虫的空间是这个的`

发布者 ..n.丫头..x
2008/5/8 17:08:15


你是毛毛虫!!!!
你怎么知道我密码?~

发布者 ..n.丫头..x
2008/5/8 17:10:39


老师帮忙博客搬家的时候搬错了
我要你账号有什么用

发布者 虫的传人
2008/5/9 1:01:08


哦`知道拉`

发布者 ..n.丫头..x
2008/5/10 13:50:48


不使用NuSoap也可以调用C#的WebService。。。

发布者 whatUwant
2009/3/28 0:38:52


C#的不标准 直接RPC调用不行 试过

发布者 虫的传人
2009/3/28 1:02:52


引用 虫的传人 发表于 2009/3/28 1:02:52 的话:
C#的不标准 直接RPC调用不行 试过
乐乎应该是是C#编写的吧

发布者 whatUwant
2009/3/28 8:58:26


嗯 对

发布者 虫的传人
2009/3/29 0:10:40


引用 虫的传人 发表于 2009/3/29 0:10:40 的话:
嗯 对
我没有用NuSOAP。。。

发布者 whatUwant
2009/3/29 2:03:41


您正在以 匿名用户 的身份发表评论  快速登录
(不得超过 50 个汉字)
(输入完内容可以直接按Ctrl+Enter提交)