ruby-on-rails - 在 HTTParty 响应中访问文件名?

我正在尝试解析来自 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 访问文件名?

最佳答案

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

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

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

https://stackoverflow.com/questions/40119207/

相关文章:

wordpress - wp_cron 计划但未触发

objective-c - requestAVAssetForVideo 不显示完成 block

cmake - 如何在 externalproject_add 中设置命令参数

python - 在 Python 中自动换行打印字符串

reactjs - 如何在常规 HTML 页面中引用 React 组件

kubernetes - 如何使用 kubernetes 执行 docker diff 命令

excel - 如何根据时间应用 WorksheetFunction.CountIfs?

javascript - 在javascript中将对象作为参数传递的性能

wordpress - 如何禁用 Wordpress/Woocommerce 中的自动 https

c# - 获取收件箱.Net.Mail C#中的所有电子邮件