我遇到了allposters.com SOAP(http://webservice.allposters.com/)的問題。我試圖在PHP 5.3安裝中通過(稍作修改)的nuSOAP PHP庫(http://sourceforge.net/projects/nusoap/)獲取一些產品信息。AllPosters.com SOAP有問題的響應
我的要求是(所有的人物都完全一樣在這裏,他們不會轉換爲實體):
POST /ProductInformationService.asmx HTTP/1.0
Host: webservice.allposters.com
User-Agent: NuSOAP/0.9.5 (1.123)
Content-Type: text/xml; charset=UTF-8
SOAPAction: "http://Webservice.Allposters.com/APCF.AffiliateWebService/ProductInformationService/GetProductByProductNumberInformation"
Content-Length: 570
<?xml version="1.0" encoding="UTF-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetProductByProductNumberInformation xmlns="http://Webservice.Allposters.com/APCF.AffiliateWebService/ProductInformationService">
<APCSearchXml>
<WebSiteID>1234567890</WebSiteID>
<SearchTerm>1234567</SearchTerm>
<LanguageID>1</LanguageID>
<CurrencyCode>USD</CurrencyCode>
</APCSearchXml>
</GetProductByProductNumberInformation>
</soap:Body>
</soap:Envelope>
而我得到的錯誤
Length cannot be less than zero. Parameter name: length
在這個特定的響應
HTTP/1.1 200 OK
Connection: keep-alive
Date: Tue, 08 Jan 2013 18:46:59 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 821
<APC_Search_Results>
<StatusCode>1</StatusCode>
<Search_Error>
<ErrorNumber>1</ErrorNumber>
<ErrorDescription>Length cannot be less than zero. Parameter name: length</ErrorDescription>
</Search_Error>
</APC_Search_Results>
通信似乎工作正常;如果我從我以前的要求刪除「WebSiteID」元素,我會得到
Index was out of range. Must be non-negative and less than the size of the collection.
可惜的是,從我在網上找到了幾個例子,並從7頁在其網站上記錄在Visual Basic樣本(這是我能找到的唯一文檔),我真的無法弄清楚我錯過了什麼,而.NET錯誤並沒有告訴我可以使用的東西。
有人遇到allposters.com會員web服務類似的問題,並有一些建議?
你在哪裏發送'length'參數?如果你不是,你應該嗎? – Madbreaks
聽起來像你需要傳遞一個長度參數 –
謝謝你的建議,但是「長度不能小於零。參數名稱:長度」不是由於我的請求中缺少「length」參數造成的已經嘗試添加它),但是當我的請求被處理時,它們看起來像來自它們服務器的ASP錯誤,可能是字符串減法操作或其他東西,其中長度參數變爲負數。根據我的請求,我無法弄清楚在他們的服務器上觸發了這個問題,因爲文檔很差。 – Corneliu