【问题标题】:Accessing the filename in an HTTParty response?在 HTTParty 响应中访问文件名?
【发布时间】:2016-10-18 22:35:33
【问题描述】:

我正在尝试解析来自 Ruby 应用程序中内容类型为 text/csv 的 api 的响应。我正在使用 HTTParty 库发出请求。我知道文件名通常存储在 Content-Disposition 下的响应标头中,但 HTTParty 似乎没有正确解析此特定标头。

我的最佳修复尝试如下:

csv_response = HTTParty.get('service.com/csv')
content_disposition = CGI::parse(catalog_response.headers['Content-Disposition'])

这是我卡住的地方,因为 CGI 解析返回一个哈希,其中文件名对象包含前导空格和文件名周围的转义引号,例如:

{' filename' => '\"file.csv\"'}

我是否正确解析了响应?有没有更合理的方式来使用 HTTParty 访问文件名?

【问题讨论】:

    标签: ruby-on-rails ruby httparty


    【解决方案1】:

    你不想要文件名。您可以改用 CSV.parse。

    csv_response = HTTParty.get('service.com/csv')
    CSV.parse(csv_response.body, headers: true) do |row|
      # do something
    end
    

    如果您的 CSV 没有标题行,请删除 headers: true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多