Rénovation: Impossible de créer le @Corps converter pour la classe
J'ai besoin d'envoyer prochaine json via rénovation 2:
{
"Inspection": {
"UUID": "name",
"ModifiedTime": "2016-03-09T01:13",
"CreatedTime": "2016-03-09T01:13",
"ReviewedWith": "name2",
"Type": 1,
"Project": {
"Id": 41
},
"ActionTypes": [1]
}
}
Avec En-Tête: Authorization: access_token_value
J'ai essayé ceci:
//header parameter
String accessToken = Requests.getAccessToken();
JsonObject obj = new JsonObject();
JsonObject inspection = new JsonObject();
inspection.addProperty("UUID","name");
inspection.addProperty("ModifiedTime","2016-03-09T01:13");
inspection.addProperty("CreatedTime","2016-03-09T01:13");
inspection.addProperty("ReviewedWith","name2");
inspection.addProperty("Type","1");
JsonObject project = new JsonObject();
project.addProperty("Id", 41);
inspection.add("Project", project);
obj.add("Inspection", inspection);
Retrofit restAdapter = new Retrofit.Builder()
.baseUrl(Constants.ROOT_API_URL)
.addConverterFactory(GsonConverterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.build();
IConstructSecureAPI service = restAdapter.create(IConstructSecureAPI.class);
Call<JsonElement> result = service.addInspection(accessToken, obj);
JsonElement element = result.execute().body();
Mais à chaque fois j'ai reçu exception: java.lang.IllegalArgumentException: Unable to create @Body converter for class com.google.gson.JsonObject (parameter #2)
Comment puis-je l'envoyer ? Ou toute autre idée de comment je peux le faire. Vous pouvez même m'offrir avec le paramètre comme simple String
avec json à l'intérieur. Il conviendra pour moi
S'il vous plaît poster IConstructSecureAPI juste pour savoir comment construisez-vous votre demande.
OriginalL'auteur neustart47 | 2016-03-09
Vous devez vous connecter pour publier un commentaire.
Solution:
déclarer corps de la valeur dans votre interface avec d'un côté:
@Body RequestBody body
et enroulez la Chaîne d'objet JSON:
RequestBody body = RequestBody.create(MediaType.parse("application/json"), obj.toString());
OriginalL'auteur neustart47
Body
utiliser un seul objet de requête, de déclarer votre objet de requête comme suitJe suppose que votre service
IConstructSecureAPI
point de terminaison est:et vous pouvez déclarer votre désir
Response
.Cochez cette réponse, son utilisation
HashMap
au lieu de la classe.OriginalL'auteur Nikson Kanti Paul
Vous pouvez utiliser un Intercepteur pour envoyer l'Autorisation d'en-Tête dans chaque demande
OriginalL'auteur Darien Alvarez