Androidからサーバー(PHP)にアクセスし複数画像をリクエストすると全部返ってこない
Androidアプリを制作しています。
やろうとしていることは、Androidアプリからサーバー(PHP)にアクセスして、そこからConoHaのオブジェクトストレージにアクセスして画像を読み込むという流れになります。
AndroidではGridViewを使用し、写真を格子状に複数枚並べる仕様です。
本来でしたらGridViewを開くと、写真がある分だけ読み込み表示されるはずなのですが、例えば10枚写真があるとすれば6枚くらいしかダウンロードがされません。
Android側では下記のようなエラーが表示されています。
error: cz.msebera.android.httpclient.client.HttpResponseException: Content-Type (text/html; charset=UTF-8) not allowed!
binaryData: null
statusCode: 500
以下がPHPファイルになります。
※簡潔に書いています。
if(isset($_POST['USER_ID']) && isset($_POST['FILE_NAME'])){
$user_id = $_POST['USER_ID'];
$file_name = $_POST['FILE_NAME'];
$client = new OpenStack(
'https://*******',
array(
'tenantName' => TENANT_NAME,
'username' => USERNAME,
'password' => PASSWORD
)
);
$client->authenticate();
$service = $client->objectStoreService('Object Storage Service', 'tyo1');
$container = $service->getContainer($user_id);
$object = $container->getObject($file_name);
$object_content = $object->getContent();
$object_content->rewind();
$stream = $object_content->getStream();
$photo = stream_get_contents($stream);
header('Content-Type: image/jpeg');
echo $photo;
}
下記はAndroid側になります。
※簡潔に書いています。
RequestParams params = new RequestParams();
params.put("USER_ID", id);
params.put("FILE_NAME", fileName);
String[] allowedContentTypes = new String[] { "image/jpeg" };
client.post("http://*******", params, new BinaryHttpResponseHandler(allowedContentTypes) {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] binaryData) {
Bitmap bmp = getDecodeByteToBitmap(binaryData);
mImageView.setImageBitmap(bmp);
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] binaryData, Throwable error) {
Log.v(TAG, "error: " + error + " binaryData: " + binaryData);
Log.v(TAG,"statusCode: " + statusCode");
}
});
ちなみにPHP内だけで実行してみますと、ちゃんとすべての写真データを取得できています。
これはGridViewに表示される枚数分に連続アクセスして、バイナリデータの通信処理が間に合わなくてエラーとかになっているのでしょうか?
どなたか解決策などありましたらぜひご教授お願いいたします。
CentOS7.2
PHP 5.6
ーーーー追記ですーーーー
ちなみにConoHaオブジェクトストレージを使用する前は、ふつうにサーバーにフォルダを置いてそこに画像を保存していました。そのときは問題なくすべてダウンロードできていました。
これが直接的に関係するのか分かりませんが、思い出しましたので追記しておきます。
それと画像読み込みはBaseAdapter内で行っています。
ーーーー追記ですーーーー
Android側の画像読み込むところに「onStart」を追加して、「onSuccess」「onFailure」と各場所にデバッグしてみました。結果は下記になります。
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.531 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.532 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.532 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.532 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.532 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.532 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.532 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.533 19134-19134/com.roid.***** D/GridAdapter: start
07-12 19:30:46.860 19134-19134/com.roid.***** D/GridAdapter: Failure-finish
07-12 19:30:46.926 19134-19134/com.roid.***** D/GridAdapter: Failure-finish
07-12 19:30:46.943 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:47.017 19134-19134/com.roid.***** D/GridAdapter: Failure-finish
07-12 19:30:47.059 19134-19134/com.roid.***** D/GridAdapter: Failure-finish
07-12 19:30:47.204 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:47.617 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:47.863 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:48.311 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:48.552 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:48.868 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:49.200 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:49.577 19134-19134/com.roid.***** D/GridAdapter: Success-finish
07-12 19:30:49.912 19134-19134/com.roid.***** D/GridAdapter: Success-finish