В моих зависимостях я добавил:
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.5.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0'
И тогда я обычно использую Пикассо, например:
Picasso.with(context)
.load(url)
.placeholder(R.drawable.ic_contact_picture)
.error(R.drawable.ic_contact_picture)
.into(imageView);
Теперь URL-адрес PHP-скрипт, из которого я делаю echo file_get_contents("$imagepath");
Изображение извлекается и отображается с помощью Picasso.
Но прежде чем делать эхо, я также устанавливаю некоторые заголовки, такие как:
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastModified)." GMT");
header("Etag: $etagFile");
header('Cache-Control: max-age=60');
Теперь, когда Пикассо будет консультироваться с okhttp, okhttp отправит эти заголовки с запросом http? Как можно проверить, отправлены ли они?
Попробуйте перейти на этот URL с Chrome и посмотреть этот так ответ о том, как проверить заголовки HTTP в Chrome.
Этот сайт покажет вам заголовки, отправленные HTTP-клиентом. Если вы на Linux, то этот так ответ предоставляет способ для этого с помощью TCPDump
Других решений пока нет …