我对 allposters.com SOAP ( http://webservice.allposters.com/ ) 有疑问。我正在尝试在 PHP 5.3 安装上通过(稍作修改)nuSOAP PHP 库(http://sourceforge.net/projects/nusoap/)获取一些产品信息。
我的要求是(所有字符都和这里完全一样,它们没有转换为实体):
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 附属网络服务中遇到过类似的问题并有一些建议吗?