je voudrais demander comment télécharger le fichier image en utilisant okhttpclient en Java car j'ai besoin de télécharger le fichier avec la session voici le code donné officiellement, mais je ne sais pas comment l'utiliser pour le téléchargement en tant que fichier image
private final OkHttpClient client = new OkHttpClient();
public void run() throws Exception {
Request request = new Request.Builder()
.url("http://publicobject.com/helloworld.txt")
.build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
Headers responseHeaders = response.headers();
for (int i = 0; i < responseHeaders.size(); i++) {
System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
}
System.out.println(response.body().string());
}
Essayez quelque chose comme ça
InputStream inputStream = response.body().byteStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Peut-être qu'il est un peu tard pour répondre à la question, mais cela peut aider quelqu'un à l'avenir. Je préfère toujours télécharger les photos en arrière-plan. Pour ce faire, utilisez OkHttpClient, vous devez utiliser callback:
final Request request = new Request.Builder().url(url).build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//Handle the error
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()){
final Bitmap bitmap = BitmapFactory.decodeStream(response.body().byteStream());
// Remember to set the bitmap in the main thread.
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(image);
}
});
}else {
//Handle the error
}
}
});