我想在Ruby的Grape API中允许下载二进制文件(.p12文件),以下是我的尝试:
get '/download_file' do
pkcs12 = generate_pkcsfile
content_type('application/octet-stream')
body(pkcs12.der)
end
使用ActionController的等效代码为
begin
pkcs12 = generate_pkcsfile
send_data(pkcs12.der,
:filename => 'filename.p12')
end
问题在于使用API下载的文件似乎是一个带有'\ufffd'前缀的文本文件,而使用浏览器下载的文件则是二进制文件。我该如何使用GRAPE API框架来实现通过ActionController的send_data下载与浏览器下载相同的文件。
Content-Type
HTTP标头有所不同?它们是否具有不同的字符集? - Stuart M