okhttp multipart de transfert d'image avec un nom de fichier
je suis en train de télécharger une image sur le serveur à partir d'un téléphone android. c'est ce que j'ai fait jusqu'à présent
OkHttpClient client = new OkHttpClient();
MultipartBuilder builder = new MultipartBuilder();
builder.type(MultipartBuilder.FORM).addPart(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), requestPackage.getJsonParam().toString()));
for (int i = 0; i < requestPackage.getPics().size(); i++) {
builder.addPart(RequestBody.create(MediaType.parse("image/png"/* + i*/), new File(URI.create(requestPackage.getPics().get(i)))));
Log.i("image to upload",URI.create(requestPackage.getPics().get(i)).toString());
}
requestBody = builder.build();
Request request = new Request.Builder().url(requestPackage.getUri()).post(requestBody).build();
try {
response = client.newCall(request).execute();
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
// System.out.println(response.body().string());
return response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
comment puis-je ajouter des noms pour les différentes parties.parce que si il n'y a pas de nom(clé) pour eux, alors comment allez-côté serveur guy magasin?
Vous devrez d'abord demander le "côté serveur guy' de ce qu'il attend. Un nom? Un nom de fichier ? Un "nom_fichier"? Un "uploaded_filename'?
permet de dit pour la partie de l'image il faut image1,image2... comment dois-je l'ajouter dans okhttp?
permet de dit pour la partie de l'image il faut image1,image2... comment dois-je l'ajouter dans okhttp?
OriginalL'auteur shreyas | 2014-11-12
Vous devez vous connecter pour publier un commentaire.
Obtenir OkHttp 2.1, et l'utilisation
MultipartBuilder.addFormDataPart()
qui prend le nom de fichier comme paramètre.Me demande juste pourquoi la documentation de github.com/square/okhttp/wiki/Recipes ne recommande pas addFormDataPart? J'ai suivi les étapes de la recette et le serveur ne reconnaît pas la demande comme multipartFile. (Printemps ne parviennent pas à convertir en chaîne de multipartFile). Cependant, addFormDataPart œuvres. En regardant le code source de addFormDataPart, il ajoute le "nom de fichier" dans la disposition de la chaîne.
C'est une lacune. Envoyez-nous un PR, (mais à confirmer que l'exemple de code fonctionne toujours première s'il vous plaît).
Le code complet est Disponible Ici: stackoverflow.com/a/34037063/1318946
OriginalL'auteur Jesse Wilson
La syntaxe semble avoir un peu changé depuis les précédentes réponses. Je suis en utilisant OkHttp 3.2.0.
OriginalL'auteur Bryant Kou
Vous pouvez trouver toutes dans le document officiel: https://github.com/square/okhttp/wiki/Recipes
Surtout vous serez intéressé par suivant morceau de
Posting a multipart request
:Vous pouvez envoyer un nom de fichier(s) à la mise en forme des données. Mais assurez-vous que quelqu'un est en train de décoder.
comment décoder? Je peux envoyer une image à côté serveur, mais n'ont aucune idée sur le décodage. Toute aide?
OriginalL'auteur greenapps
Vous pouvez utiliser plusieurs parties comme ci-dessous pour envoyer plusieurs valeurs dans une seule demande
OriginalL'auteur sunil jain