私は、会社の iPad アプリとまったく同じように機能する Android アプリを作成しています。しかし、Androidでの開発中に1つの問題があります。アプリは Web サーバーからファイルをダウンロードします。次のような URL を呼び出します。
https://www.somedomain.com/API/Download.aspx?param1=test¶m2=test2など...
iPad では、これは完全に機能しています (これには ASIHTTPRequest クラスを使用します)。しかし、Androidでは問題しかありません。
Android でファイルをダウンロードしようとするとすぐに、PDF ファイルではなく、500 内部サーバー エラー HTML ドキュメントを含むファイルがダウンロードされます。
URL を確認しましたが、iPad とまったく同じように見えます。
私が想像できる唯一のことは、ユーザーがダウンロードするファイルが「その場で」作成されるということです。そのため、ファイルの生成に時間がかかり (10 秒または 20 秒)、その後ファイルがダウンロードされます。
アンドロイドでは、私はこれを行います:
私は拡張するクラスを持っています:
extends AsyncTask<String, Integer, JSONObject>
メソッドでは、これを行います:
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
InputStream data = response.getEntity().getContent();
File file = new File(context.getDir("docs", Context.MODE_PRIVATE), FileName);
OutputStream output = new FileOutputStream(file);
ByteStreams.copy(data, output);
Closeables.closeQuietly(output);
しかし、これにより、目的の PDF ファイルではなく、500 内部サーバー エラー ドキュメントが表示されます。ここで何が欠けていますか?(申し訳ありませんが、私は Android 向けの開発を始めたばかりなので、この場合の専門家ではありません ;-))
前もって感謝します!