• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 47, 文章 - 10, 評論 - 8, 引用 - 0
            數據加載中……

            PHP5中的SOAP擴展的應用及注意的問題

            既然說到SOAP就先對這個有個大概了解吧。

            SOAP(簡單對象訪問協議)定義了客戶機與服務器之間傳遞的消息。消息采用 XML 格式。SOAP 獨立于平臺、編程語言、網絡和傳輸層。

            這次做的項目中需要提供WebService服務,沒話說,由于是PHP的項目,首先就按照習慣用了NuSOAP,結果讓我郁悶了好久,程序返回的是一個數組,但是用print_r()打印出來是空的,用count()看了一下大小為1,郁悶ing。看了一下response數據是存在的啊。又對照了一下以前做的SOAP(是在PHP4上的),兩個response有點不同,這才反應過來是PHP5跟PHP4的版本不一樣。

            打開php.ini,找到擴展模塊那部分,把soap的模塊加載上,又重新寫了一下Server端和Client端,繼續測試。總是出現“looks like we got no XML document”的error。難道是用法錯了,手頭正好有本《PHP5 Power Programming》找到SOAP的地方,沒找到問題,又跑到zend的官方網站上看了一下SOAP的介紹和示例(http://www.zend.com/php5/articles/php5-SOAP.php?out=dynamicwebpages),沒錯啊。去Google搜索這個錯誤,最后還是連到了zend的一個blog上(http://www.zend.com/php5/articles/php5-SOAP.php?article=php5-SOAP&kind=php5&id=5085&open=1&anc=0&view=1),前半部分跟上面那個是一樣的,直接跳過,看下面的Comment,發現好多人都遇到了這個問題,人提到是在PHP開始標簽之前存在blank character,可我的沒有啊,我的有個require_once("mainfile.php"),把這句注釋掉以后就沒問題了,又繼續根據mainfile.php追蹤下去,發現是在類的文件中PHP結束標簽之后有blank character,刪除掉就沒問題了。

            在zend上的comments里還有人提到是XML文件的編碼問題,這個我沒有測試。終于搞定了這個問題,繼續寫接口,哎……

            郁悶本來想把全部代碼貼上來,結果排版會有問題,還是貼些重要的吧!

            Server端:

            1 $web_service ? = ? new ?SoapServer( null , ? array ( ' uri ' ? => ? ' ispfcn ' , ' encoding ' => ' gb2312 ' ));?
            2 $web_service -> addFunction( " iGetUserList " );
            3 $web_service -> addFunction( " iRegisterUser " );
            4 $web_service -> addFunction( " iSetUserPwd " );
            5 $web_service -> handle();

            Client端:
            ?1try?{
            ?2$opts?=?array('location'?=>?'http://192.168.0.56/web_service.php','uri'=>'ispfcn','encoding'=>'gb2312');
            ?3$client?=?new?SoapClient(null,$opts);
            ?4$custom_id=1;
            ?5$custom_name="system";
            ?6$custom_pwd=md5("system");
            ?7$custom_flag="sys";
            ?8$start=0;
            ?9$limit=0;
            10$result?=?$client->iGetUserList($custom_id,$custom_name,$custom_pwd,$custom_flag,$start,$limit);
            11for?($i=0;$i<count($result);$i++){
            12????echo?sprintf("%4d",$result[$i]['user_id']).":".$result[$i]['username']."";
            13????}
            14}
            15catch?(SoapFault?$e)
            16{
            17echo?$e->faultcode,'?'.$e->faultstring."n";
            18}

            posted on 2006-04-04 11:03 編程之道 閱讀(1824) 評論(1)  編輯 收藏 引用 所屬分類: web編程

            評論

            # re: PHP5中的SOAP擴展的應用及注意的問題  回復  更多評論   

            我也遇到了上面的問題 但是還是看不明白你是如何解決的。請具體執教
            2009-02-11 18:27 | 翼輝
            久久综合九色综合欧美就去吻| 久久乐国产综合亚洲精品| 麻豆av久久av盛宴av| 色欲久久久天天天综合网| 色欲久久久天天天综合网精品| 狠色狠色狠狠色综合久久| 国产成人精品综合久久久| 99久久国产亚洲综合精品| 狠狠色丁香久久婷婷综合五月| 久久综合狠狠综合久久综合88| 久久精品亚洲男人的天堂| 无码人妻精品一区二区三区久久| 久久99国产精品一区二区| 国产L精品国产亚洲区久久 | 思思久久好好热精品国产| 少妇高潮惨叫久久久久久| 久久精品成人欧美大片| 99久久精品国产综合一区| 99久久国产综合精品麻豆| 少妇高潮惨叫久久久久久| 少妇熟女久久综合网色欲| 少妇被又大又粗又爽毛片久久黑人| 久久99热国产这有精品| 婷婷久久综合九色综合98| 国内精品伊人久久久久av一坑| 久久综合噜噜激激的五月天| 久久久老熟女一区二区三区| 97久久国产亚洲精品超碰热| 久久精品一区二区| 色偷偷91久久综合噜噜噜噜| 久久久午夜精品福利内容| 人妻无码久久一区二区三区免费 | 精品久久久久成人码免费动漫| 久久国产精品一区| 亚洲AV无码一区东京热久久| 久久99精品久久久久久hb无码| 久久久无码一区二区三区| 伊人久久大香线焦综合四虎| 久久久久久精品免费免费自慰 | 国产精品久久波多野结衣| 人妻丰满AV无码久久不卡|