• <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, 評(píng)論 - 8, 引用 - 0
            數(shù)據(jù)加載中……

            PHP5中的SOAP擴(kuò)展的應(yīng)用及注意的問(wèn)題

            既然說(shuō)到SOAP就先對(duì)這個(gè)有個(gè)大概了解吧。

            SOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)定義了客戶機(jī)與服務(wù)器之間傳遞的消息。消息采用 XML 格式。SOAP 獨(dú)立于平臺(tái)、編程語(yǔ)言、網(wǎng)絡(luò)和傳輸層。

            這次做的項(xiàng)目中需要提供WebService服務(wù),沒(méi)話說(shuō),由于是PHP的項(xiàng)目,首先就按照習(xí)慣用了NuSOAP,結(jié)果讓我郁悶了好久,程序返回的是一個(gè)數(shù)組,但是用print_r()打印出來(lái)是空的,用count()看了一下大小為1,郁悶ing??戳艘幌聄esponse數(shù)據(jù)是存在的啊。又對(duì)照了一下以前做的SOAP(是在PHP4上的),兩個(gè)response有點(diǎn)不同,這才反應(yīng)過(guò)來(lái)是PHP5跟PHP4的版本不一樣。

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

            在zend上的comments里還有人提到是XML文件的編碼問(wèn)題,這個(gè)我沒(méi)有測(cè)試。終于搞定了這個(gè)問(wèn)題,繼續(xù)寫接口,哎……

            郁悶本來(lái)想把全部代碼貼上來(lái),結(jié)果排版會(huì)有問(wèn)題,還是貼些重要的吧!

            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 編程之道 閱讀(1819) 評(píng)論(1)  編輯 收藏 引用 所屬分類: web編程

            評(píng)論

            # re: PHP5中的SOAP擴(kuò)展的應(yīng)用及注意的問(wèn)題  回復(fù)  更多評(píng)論   

            我也遇到了上面的問(wèn)題 但是還是看不明白你是如何解決的。請(qǐng)具體執(zhí)教
            2009-02-11 18:27 | 翼輝
            亚洲精品乱码久久久久久| 精品视频久久久久| 一级a性色生活片久久无少妇一级婬片免费放 | 国产一级做a爰片久久毛片| 熟妇人妻久久中文字幕| 青青热久久国产久精品 | 国内精品伊人久久久久网站| 久久精品国产一区二区三区日韩| 久久精品亚洲日本波多野结衣| 人人狠狠综合久久88成人| 久久久久亚洲av无码专区喷水| 久久99精品久久久久久久不卡| …久久精品99久久香蕉国产| 欧美777精品久久久久网| 2020最新久久久视精品爱| 久久精品国产亚洲Aⅴ香蕉| 欧美精品丝袜久久久中文字幕| 伊色综合久久之综合久久| 成人久久免费网站| 国产精品久久久久久久久| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区| 麻豆精品久久久一区二区| 久久精品国产99久久久香蕉| 久久夜色精品国产亚洲| 狠狠色丁香婷婷久久综合不卡| 99久久亚洲综合精品网站| 色综合久久久久综合99| 久久狠狠爱亚洲综合影院| 91视频国产91久久久| 久久久综合香蕉尹人综合网| 久久综合久久自在自线精品自| 国产精品成人久久久久三级午夜电影 | 精品久久一区二区| 欧美大战日韩91综合一区婷婷久久青草| 日韩久久久久中文字幕人妻| 精品国产乱码久久久久久人妻| 免费国产99久久久香蕉| 久久久一本精品99久久精品88| 久久99中文字幕久久| 亚洲综合精品香蕉久久网| 欧美精品丝袜久久久中文字幕|