URL からファイルをダウンロードしてユーザーに渡そうとしています。
これを機能させるには、次のような HTTP GET リクエストを作成する必要があります。
https://some.service.com/api/pdf?doc_id=99&data[info1]=some+info&data[info2]=more+info
ブラウザで発行すると、これは正常に機能し、正しいデータを含む正しいドキュメントが返されます。
プログラムで同じことをしたい:
- クエリを作成し、rest-client 経由でファイルをリクエストします。
- send_file を介してユーザーにファイルを提供します。
私の2つの問題は次のとおりです。
- パラメータをrest-clientに渡す方法を間違えていますが、結果のクエリが実際に何であるかを確認する方法が見つかりませんでした。これにより、結果の呼び出しを自分のブラウザーで動作する呼び出しと比較するだけなので、自分が何を間違っているかを確認するのが難しくなります。を除くすべてのパラメータは正常に
data[]
機能します。 - を介して正しいドキュメント (正しいデータを差し引いたもの) のみを提供できます
send_data
。つまり、タイプとファイル名を再度指定する必要があります。私がダウンロードしている PDF は、名前付けやすべてに適しているため、これは意味がありません。send_file
エラーを返します。
これが私のコードです:
def request_and_send_file
response = RestClient.get("https://some.service.com/api/pdf", :params => {
doc_id: 99,
:data => {
info1: "some info",
info2: "more info"}})
send_data response.body, filename: "hochzeitsfeder.pdf", disposition: "attachment", :content_type => 'application/pdf'
end
どんな助けでも大歓迎です。