我是武男, 24歲, 大家都叫我阿男...有的人還會叫我白目研究生...找我的話請Google "武男" 就沒錯了~

PHP-SOAPCLIENT How To

Autor 白目研究生

又是Program

整理一些下一個Project的前置作業

如何使用PHP叫用Web Services

用了SOAPCLIENT的Object

測試環境:

Web Service Server:IIS 5

Web Services:dotNET Web Service Project

Web Server:appserv-win32-2.5.8

PHP Compiler:PHP Version 5.2.0

寫了兩個dotNET的WebMethod測試

[WebMethod]
public int Sum(int a, int b)
{
return a + b;
}

[WebMethod]
public string str(string str)
{
return 『123123123123123″;
}

接著是PHP部分

<?

$client = new SOAPClient(‘http://127.0.0.1/get/Service.asmx?WSDL’);
$temp = $client->str(『』);
echo $temp->strResult;//可以這樣子把叫用的結果印出

//如果需要傳參數運算的話

$Client = new SoapClient(『http://127.0.0.1/get/Service.asmx?WSDL『);
$params->a = 2;
$params->b = 3;

$objectresult = $client->sum($params);
$simpleresult = $objectresult->SumResult;

//針對傳輸資料細節可以用print_r把資料dump出來

print_r ($simpleresult);

$client->Encrypt(array(『id』=>$ID,』pwd』=>$PWD)) //或者把參數用ARRAY傳呼叫

//目前測試了三個型態的WebMethod,如果回傳值為DataSet的話可以用下面方式dump 資料,有階層性的概念

$smldata = $regetdata -> GetDataResult; //接收資料

echo $tmp -> NewDataSet -> tbltmp[0] -> Title; //指定欄位的資料

?>

以上,報告結束

人就是懶,懶了就會找好工具

1231.JPG

 

Random Posts

請留言

Reader's Comments

  1. chiyuan |

    大大您好
    想請教一下
    套用您的範例

    asmx
    ===================================
    [WebMethod]
    public string str(string str)
    {
    return str;
    }

    php
    ===================================
    str(『test』);
    echo $temp->strResult;

    ?>

    但似乎字串都傳不進去
    印出來都是空白
    請問有這方面解法?
    謝謝~

  2. chiyuan |

    補上剛剛的php

    str(『test』);
    echo $temp->strResult;

    ?>

  3. chiyuan |

    str(『test』);
    echo $temp->strResult;

    ?>

  4. chiyuan |

    不好意思
    怎麼貼都缺一段

    方便給我您的mail ?
    想請教您
    謝謝

  5. 白目研究生 |

    請洽』關於我』 http://blog.havenlin.org/about

    裡面就會有你要的資料了~XDD

  6. chiyuan |

    大大問題已解決了~
    3q

  7. chiyuan |

    我也出现chiyuan说无法传入参数的问题,请问如何解决?

    chiyuan | July 14th, 2009 at 17:06
    大大您好
    想請教一下
    套用您的範例

    asmx
    ===================================
    [WebMethod]
    public string str(string str)
    {
    return str;
    }

    php
    ===================================
    str(”test”);
    echo $temp->strResult;

    ?>

    但似乎字串都傳不進去
    印出來都是空白
    請問有這方面解法?
    謝謝~

  8. 佳佳 |

    你的網站自介資料寫的太酷了!!!
    我有加入你臉書
    這篇很有用
    收下了
    PHP SOAP研究中
    你會寫.NET又寫PHP喔

  9. 白目研究生 |

    剛好都只會一些些而已~

CommentComment