第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

?今天在想使用soap開發(fā)相關(guān)接口給合作的公司調(diào)用,但是遇到了這個錯誤。

?今天在想使用soap開發(fā)相關(guān)接口給合作的公司調(diào)用,但是遇到了這個錯誤。

PHP
森欄 2023-04-16 17:13:42
排查了很久,在google也查了很久,但都不是我所遇到的問題。不過我最終錯誤發(fā)現(xiàn)跟soapserver傳輸?shù)臄?shù)據(jù)量的大小有關(guān)系(不知道這個描述是否恰當(dāng))。當(dāng)我從數(shù)據(jù)庫取10條數(shù)據(jù),那么就可以很容易的使用soapclient獲取到數(shù)據(jù),但是當(dāng)我從數(shù)據(jù)庫里查詢1000條數(shù)據(jù)的時候就會報錯了(“Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in……”)!如果我直接運行person.class.php程序是可以顯示完整的xml文檔的。這根服務(wù)器的環(huán)境配置會有關(guān)系嗎?我對于soap認(rèn)識并不深,也只是現(xiàn)學(xué)現(xiàn)賣。希望有經(jīng)驗的前輩們可以指點一二。多謝了!以下是我的程序代碼:<?php//person.class.php文件class person{  public function getInfo()  {   $strGetList = 'SELECT * FROM information LIMIT 100';   $GLOBALS['le']->query($strGetList);   $results = array();   $xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";   $xmlString .="<Data>\n";   while( $rows = $GLOBALS['le']->fetch_assoc() ) {   $results[] = $rows;   }   foreach($results as $key=>$val) {   $xmlString .="<Rec ID='UU{$key}'>\n";   foreach($val as $k=>$v ) {   if(strlen($v)>0) {   $v = htmlspecialchars($v);   $xmlString .=" <UU{$k}>$v</UU{$k}>\n";   }   }   $xmlString .="</Rec>\n";   }   $xmlString .="</Data>\n";   return $xmlString;  } }//$p = new person;//echo $p->getInfo();//經(jīng)測試xml中可以顯示所有數(shù)據(jù)--- 分割線 ---<?php//server.php文件include("person.class.php");$server = new SoapServer(null,array('uri'=>'abcd','encoding'=>'UTF-8'));$server->setClass('person');$server->handle(); --- 分割線 ---<?php//client.php文件try{ $soap = new SoapClient(null,array( 'location'=>'http://192.168.1.126:102/server.php', 'uri'=>'abcd',  'encoding' => 'UTF-8', )); $s1 =$soap->__soapCall('getInfo',array()); echo $s1; } catch(Exction $e) { echo $e->getMessage(); }
查看完整描述

2 回答

?
冉冉說

TA貢獻1877條經(jīng)驗 獲得超1個贊

別用soap,把接口發(fā)給你的數(shù)據(jù)dump出來看看。估計是網(wǎng)絡(luò)傳輸出了啥問題,數(shù)據(jù)沒抓全,xml不完整,沒法解析。

查看完整回答
反對 回復(fù) 2023-04-20
?
呼啦一陣風(fēng)

TA貢獻1802條經(jīng)驗 獲得超6個贊

從SoapClient的異常"[Client] looks like we got no XML document"來看應(yīng)該是響應(yīng)有問題,所以首要的是查看響應(yīng)消息是什么,有幾種方案可以協(xié)助你定位問題:

  1. 簡單一點的,你可以用SoapUI,查看響應(yīng)是否真的有問題?是否沒有響應(yīng)?

  2. Geek一點的,自制一個模擬客戶端來檢查響應(yīng)消息,普通的SOAP協(xié)議并不難,只需用HTTP協(xié)議POST一小段XML給Server就行,代碼量應(yīng)該在20行以內(nèi)

  3. 我平時常用一點的,因為SOAP是走HTTP傳輸協(xié)議的,因此可以抓取整個HTTP Response,檢查其內(nèi)容是否符合XML格式。抓取方式可以用tcpdump(Linux命令行)或HTTPTracer(Java跨平臺,使用方便,我的最愛)

  4. 直接一點的,查看SoapClient.php的源碼,我沒記錯的話代碼量挺小的,查找字符串“l(fā)ooks like we got no XML document”,然后往回找到XML解析那段,在解析前輸出原始內(nèi)容看看到底響應(yīng)內(nèi)容出現(xiàn)了什么問題


查看完整回答
反對 回復(fù) 2023-04-20
  • 2 回答
  • 0 關(guān)注
  • 150 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號