首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Curl将HTTP发布到Ebay Trading API

使用Curl将HTTP发布到Ebay Trading API
EN

Stack Overflow用户
提问于 2013-02-04 11:08:21
回答 2查看 2.1K关注 0票数 2

我正在尝试做一个HTTP POST从易趣交易API检索订单数据。我对此还是个新手--正如你所看到的。我首先使用了他们的API测试工具,并成功地通过生产环境获得了实际订单数据。

我复制了HTTP头信息和XML请求部分,将其与我认为将使其成为有效的HTTP Post的内容放在一个文件中,然后使用Curl可执行文件-通过批处理文件调用。

这不起作用--所以我改成了一个更简单的请求-- GeteBayTime --并且得到了完全相同的结果。

我的批处理文件是...(全部为一行)

代码语言:javascript
复制
Curl -X POST --header "Content-Type:text/xml" -d @postfile https://api.ebay.com/ws/api.dll  > out.xml

邮寄文件是..。

代码语言:javascript
复制
POST / HTTP/1.1
Host: https://api.ebay.com/ws/api.dll
User-Agent: App v1.0
Connection: Keep Alive
Content-Length: 125
Content-Type: text/xml
X-EBAY-API-APP-ID:***-MyReal-APP-ID-here***
X-EBAY-API-VERSION:807  
X-EBAY-API-COMPATIBILITY-LEVEL:707
X-EBAY-API-SITE-ID:0
X-EBAY-API-CALL-NAME:GeteBayTime
X-EBAY-API-REQUEST-ENCODING:XML

<?xml version="1.0" encoding="utf-8"?>
<GeteBayTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents">
</GeteBayTimeRequest>

结果(在out.xml中)是...

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
-<GeteBayOfficialTimeResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2013-02-04 02:56:43</Timestamp><Ack>Failure</Ack>-<Errors>  
<ShortMessage>Unsupported API call.</ShortMessage><LongMessage>The API call 
"GeteBayOfficialTime" is invalid or not supported in this release.</LongMessage>   
<ErrorCode>2</ErrorCode><SeverityCode>Error</SeverityCode>
<ErrorClassification>RequestError</ErrorClassification></Errors><Build>15743293</Build>
</GeteBayOfficialTimeResponse

有人能发现我的问题吗??

EN

回答 2

Stack Overflow用户

发布于 2013-02-05 17:29:22

只有请求正文必须在数据中-

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<GeteBayTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents">
</GeteBayTimeRequest>

该值必须在标题中-

代码语言:javascript
复制
X-EBAY-API-APP-ID:***-MyReal-APP-ID-here***
X-EBAY-API-VERSION:807  
X-EBAY-API-COMPATIBILITY-LEVEL:707
X-EBAY-API-SITE-ID:0
X-EBAY-API-CALL-NAME:GeteBayTime
X-EBAY-API-REQUEST-ENCODING:XML
票数 1
EN

Stack Overflow用户

发布于 2016-09-26 03:38:59

我有解决方案--我花了一些时间找到正确的方法:

代码语言:javascript
复制
Curl -X POST -H "Content-type: text/xml" -H "X-EBAY-API-COMPATIBILITY-LEVEL:911" -H "X-EBAY-API-SITEID:3" -H "X-EBAY-API-CALL-NAME:GeteBayOfficialTime" -d @postfile.txt https://api.ebay.com/ws/api.dll

Postfile:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<GeteBayOfficialTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents">
    <RequesterCredentials>
        <eBayAuthToken>Your Token</eBayAuthToken>
    </RequesterCredentials>
</GeteBayOfficialTimeRequest>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14679856

复制
相关文章

相似问题

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