Retrofit 2.0.0-beta2 を使用しており、PHP サーバーからいくつかのファイルをダウンロードする必要があります。私の最初のアプローチは、相対サーバー パスから GET メソッドを直接使用することで、正しいバイトを取得していました。
ここで、いくつかのチェックに基づいてファイルを配信する、より安全なものを試しました。DB からファイル パスを自動的に取得し、ユーザー セッションが正しいかどうかを確認します。これはブラウザー テストで動作し、Chrome PC と Android の Chrome の両方で、一部の写真が正しくダウンロードされます。
次のように X-Sendfile ヘッダーを使用してファイルを提供しています。
header("X-Sendfile: $file_name");
header("Content-type: image/jpeg");
header('Content-Disposition: attachment; filename="' . basename($file_name) . '"');
Android 側の呼び出しは次のようになります。
@Streaming
@GET("/card/download")
Call<ResponseBody> getCard(@Query("filename") String filename);
ファイルを開くときに得られるのは、サーバーからのエコーされたテキスト応答だけです。「正しい」ファイルを受け取る方法はありますか?