Comment faire une requête POST à l'aide de rénovation 2?
J'ai seulement été en mesure d'exécuter l'exemple hello world (GithubService) à partir de la documentation.
Le problème est que lorsque j'exécute mon code, j'obtiens l'Erreur suivante, à l'intérieur de onFailure()
Utilisation JsonReader.setLenient(true) pour accepter la malformation de JSON à la ligne 1
colonne 1 chemin $
Mon API prend POST params valeur, donc pas besoin de les encoder en JSON, mais il ne retour la réponse en JSON.
Pour la réponse que j'ai eu ApiResponse classe que j'ai généré à l'aide d'outils.
Mon interface:
public interface ApiService {
@POST("/")
Call<ApiResponse> request(@Body HashMap<String, String> parameters);
}
Voici comment j'utilise le service:
HashMap<String, String> parameters = new HashMap<>();
parameters.put("api_key", "xxxxxxxxx");
parameters.put("app_id", "xxxxxxxxxxx");
Call<ApiResponse> call = client.request(parameters);
call.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(Response<ApiResponse> response) {
Log.d(LOG_TAG, "message = " + response.message());
if(response.isSuccess()){
Log.d(LOG_TAG, "-----isSuccess----");
}else{
Log.d(LOG_TAG, "-----isFalse-----");
}
}
@Override
public void onFailure(Throwable t) {
Log.d(LOG_TAG, "----onFailure------");
Log.e(LOG_TAG, t.getMessage());
Log.d(LOG_TAG, "----onFailure------");
}
});
publier stacktrace, mais le problème est probable que la réponse est incorrect. il ya beaucoup d'options de débogage en rénovation, de les utiliser
OriginalL'auteur Cool Do | 2016-01-13
Vous devez vous connecter pour publier un commentaire.
Si vous ne voulez pas encodé en JSON params utiliser ceci:
OriginalL'auteur Vishal Raj
Vous devez être conscient de la façon dont vous souhaitez encoder le post params. Il est aussi Important de le
@Header
annotation dans la suite. Il est utilisé pour définir le utilisés type de contenu dans l'en-tête HTTP.Vous devez coder votre post params en quelque sorte. Pour utiliser JSON pour la transmission, vous devez ajouter
.addConverterFactory(GsonConverterFactory.create(gson))
dans votre Rénovation de la déclaration.Une autre source de votre problème pourrait être que le JSON, c'est en provenance du reste backend ne semble pas être correct. Vous devriez vérifier la syntaxe json avec un programme de validation, par exemple http://jsonlint.com/.
@Header not applicable to method
donc ne peut pas compiler, je ne veux pas encoder en json , il vous suffit de poster valeurs brutesCorrection - @ - Têtes("Content-type: application/json")
comment appeler la méthode post avec params ici?
comment appeler avec des paramètres de Champ Json ???
OriginalL'auteur Philipp Hellmayr