首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eBay NVP api返回失败

eBay NVP api返回失败
EN

Stack Overflow用户
提问于 2011-07-23 08:22:33
回答 2查看 2.6K关注 0票数 2

有人能告诉我为什么这个请求总是返回失败吗?它是在我添加了itemFilter(1).name=Seller&itemFilter(1).value(0)=sellerName之后才开始发生的

当我把它拿出来的时候,它工作得很好。我知道,当我拿回数据时,我可以解析出这些信息,但这只是一个变通办法。

代码语言:javascript
复制
http://svcs.ebay.com/services/search/FindingService/v1
?OPERATION-NAME=findCompletedItems
&SERVICE-VERSION=1.0.0
&SECURITY-APPNAME=MY TOKEN HERE
&GLOBAL-ID=EBAY-US
&keywords=iphone+3gs+8gb
&categoryId=9355
&outputSelector=SellerInfo
&itemFilter(0).name=Condition
&itemFilter(0).value(0)=3000
&itemFilter(1).name=Seller
&itemFiler(1).value(0)=sellerName

下面是我提出这个请求时得到的结果:

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8'?>
<findCompletedItemsResponse xmlns="http://www.ebay.com/marketplace/search/v1/services">
  <ack>Failure</ack>
  <errorMessage>
    <error>
      <errorId>46</errorId>
      <domain>Marketplace</domain>
      <severity>Error</severity>
      <category>Request</category>
      <message>Value is required for item filter, SELLER.</message>
      <subdomain>Search</subdomain>
      <parameter>SELLER</parameter>
    </error>
  </errorMessage>
  <version>1.11.0</version>
  <timestamp>2011-07-23T00:13:50.689Z</timestamp>
</findCompletedItemsResponse>

它一直告诉我没有为itemFilter.name=Seller设置值。我也尝试了相同的请求,但添加了另一个itemFilter.value(1)=sellerName2

这是当我尝试这个请求时它给我的结果:

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8'?>
<errorMessage xmlns="http://www.ebay.com/marketplace/search/v1/services">
  <error>
    <errorId>5006</errorId>
    <domain>CoreRuntime</domain>
    <severity>Error</severity>
    <category>System</category>
    <message>Unable to create xml stream reader for NV: payload format incorrect or payload is empty</message>
    <subdomain>Comm_Recv</subdomain>
    <parameter name="Param1">NV</parameter>
  </error>
</errorMessage>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-25 07:26:54

因为您没有为每个项目使用多个值,所以它失败了。您当前的方法仅在每个项目存在多个值时才会进行评估,因此请尝试以下操作:

代码语言:javascript
复制
http://svcs.ebay.com/services/search/FindingService/v1
?OPERATION-NAME=findCompletedItems
&SERVICE-VERSION=1.0.0
&SECURITY-APPNAME=MY TOKEN HERE
&GLOBAL-ID=EBAY-US
&keywords=iphone+3gs+8gb
&categoryId=9355
&outputSelector=SellerInfo
&itemFilter(0).name=Condition
&itemFilter(0).value=3000
&itemFilter(1).name=Seller
&itemFiler(1).value=sellerName

大多数程序员在他们的代码中使用类似()的东西:

代码语言:javascript
复制
     if(is_array($value)) {
        foreach($value as $j => $content) { // Index the key for each value
          $urlfilter .= "&itemFilter($i).$key($j)=$content";
        }
      }
      else {
        if($value != "") {
          $urlfilter .= "&itemFilter($i).$key=$value";
        }
票数 3
EN

Stack Overflow用户

发布于 2017-03-16 12:46:39

您也可以尝试

$params = http_build_query($your_array)

在PHP中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6797410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档