Upload de fichier avec okhttp

Im à la finition de ce projet qui est à l'aide de okhttp pour la communication avec un webservice.

Tout va bien régulier Obtient et des Postes, mais je suis pas capable de télécharger un fichier.

La okhttp docs sont que très peu sur ces sujets, et tout ce que j'ai trouvé ici ou ailleurs ne semble pas fonctionner dans mon cas.

C'est censé être simple: je dois envoyer le fichier, et des valeurs de chaîne. Mais je ne peux pas compris comment le faire.

En suivant les quelques échantillons que j'ai trouvé, j'ai d'abord essayé ceci:

RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM)
    .addFormDataPart("group", getGroup())
    .addFormDataPart("type", getType())
    .addFormDataPart("entity", Integer.toString(getEntity()))
    .addFormDataPart("reference", Integer.toString(getReference()))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"task_file\""), RequestBody.create(MediaType.parse("image/png"), getFile()))
    .build();

Il me donne un "400 bad request" erreur.

J'ai donc essayé de le okhttp recettes:

RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM)
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"group\""), RequestBody.create(null, getGroup()))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"type\""), RequestBody.create(null, getType()))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"entity\""), RequestBody.create(null, Integer.toString(getEntity())))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"reference\""), RequestBody.create(null, Integer.toString(getReference())))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"task_file\""), RequestBody.create(MediaType.parse("image/png"), getFile()))
    .build();

Même résultat.

Ne sais pas quoi d'autre à essayer ou quoi regarder dans de débogage.

La requête est faite avec ce code:

//adds the required authentication token
Request request = new Request.Builder().url(getURL()).addHeader("X-Auth-Token", getUser().getToken().toString()).post(requestBody).build();
Response response = client.newCall(request).execute();

Mais je ne suis sûr que le problème est de savoir comment Im bâtiment le corps de la requête.

Ce que je fais mal?

EDIT: "getFile()" ci-dessus renvoie un Fichier objet, par la manière. Le reste des paramètres sont toutes les chaînes et les services de renseignements.

OriginalL'auteur diogo.abdalla | 2015-05-20