【问题标题】:Download a zip file from eBay using rest-client使用 rest-client 从 eBay 下载 zip 文件
【发布时间】:2017-09-12 07:49:13
【问题描述】:

我想从 eBay 下载 zip 文件。使用downloadfile api。

response = RestClient.post(url,xml,headers)

此调用返回我认为在 xml 中不可提取的 zip 文件的内容。所以我想从 eBay 下载 zip 文件。

我的代码是:

headers = { 
 "X-EBAY-SOA-OPERATION-NAME"=>"downloadFile",
 "X-EBAY-SOA-SECURITY-TOKEN" => access_token_lister,
 "X-EBAY-API-SITEID"=>"0",
 "Content-Type"=>"application/zip"
}
url = 'https://storage.ebay.com/FileTransferService' 

xml = '<?xml version="1.0" 
encoding="utf-8"?> <downloadFileRequest xmlns="ebay.com/marketplace/services">; <fileReferenceId>6637191637</fileReferenceId> <taskReferenceId>6474385857</taskReferenceId> </downloadFileRequest>'

上面使用的 API 的文档可以在这里找到:http://developer.ebay.com/devzone/file-transfer/CallRef/downloadFile.html

【问题讨论】:

  • 如果你想下载一些东西,你应该使用 GET 方法。此外,请显示更多有关您尝试过的代码以及收到的错误消息。我们不会为您编写代码;)
  • @HolgerFrohloff 我已经用代码更新了我的问题,请看一下。

标签: ruby-on-rails rest-client ebay-api


【解决方案1】:

您必须将响应的内容传递给像 rubyzip 这样的库。然后使用它从压缩文件中提取文件。您可以先将文件写入磁盘,然后使用 ruby​​zip 读取它。

具体查看rubyzip的这部分文档-Reading a Zip file来完成你想要实现的目标。

【讨论】:

  • 我在“rubyzip”文档中没有找到任何选项。
  • 如果我没记错的话,您是在尝试解压下载的 zip 文件,对吧?
  • 是的。但是 zip 文件是由我生成的,响应是从 api 调用返回的,并且响应是二进制编码的形式,我已经尝试了很多将其转换为其他格式,如 xml。
猜你喜欢
  • 1970-01-01
  • 2021-11-23
  • 2020-11-08
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2020-07-19
  • 2017-10-22
相关资源
最近更新 更多