Je crois que j'ai eu une erreur sur mon application.Comment éviter l'encodage en segments lorsque l'API restante passe par APIMan?
Lorsque j'essaie d'extraire des informations de l'URL, une erreur est survenue sur l'objet JSON. Cela se produit car, pour une raison quelconque, APIMan inclut une sorte d'encodage dans la réponse. Voici mon code:
Client client = Client.create();
WebResource webResource = client.resource(uri);
ClientResponse response = webResource.header("X-API-Key", xApiKey)
.header("Content-Type", "application/json; charset=UTF-8")
.header("Accept", "application/json")
.header("Authorization", "Bearer " + token)
.get(ClientResponse.class);
String json = response.getEntity(String.class);
quand j'envoyer une demande par apiman, ma réponse est montré avec des caractères spéciaux:
public static void main(String[] args) {
String uri = "https://apiman.url/apiman-gateway/org/api/1.0/method";
String apiKey = "894fd5b3-36f0-32974-xxxxxxxx";
get("token", uri, apiKey);
}
// response is 1ff8\r\n{"data":...1ff8\r\nSim"[9867,"CAR\r\n1c7d\r\n...}\r\n0\r\n\r\n
quand je ne l'utilise apiman, alors ma réponse est différente comme montré ci-dessous :
public static void main(String[] args) {
String uri = "https://192.168.56.22:8080/app/method";
String apiKey = "not needed";
get("token", uri, apiKey);
}
// response is ok {"data":...Sim"[9867,"CAR...}
partie PS.:The de « ... » il était juste moi de ne pas transmettre toutes les données ici.
Est-ce que quelqu'un a eu le même problème? Il semble que certains caractères ont un type d'encodage différent.
Edit.1:
Si je tente d'accéder à l'url apiman directement, la réponse est montré ok:
https://apiman.url/apiman-gateway/org/api/1.0/method?apikey=894fd5b3-36f0-32974-xxxxxxxx
// response is ok {"data":...Sim"[9867,"CAR...}
Dans un autre test, j'ai utilisé la méthode cURL:
curl -i -X GET -H "Content-Type:application/json" -H "X-API-Key:894fd5b3-36f0-32974-xxxxxxxx" 'https://apiman.url/apiman-gateway/org/api/1.0/method'
/* response is 1ff8
{"data":...
1ff8
Sim"[9867,"CAR
1c7d
...}
0
*/
Édition.2:
Pour une raison quelconque, le problème se produit à nouveau.
Existe-t-il un moyen de résoudre ce problème?
ce message a été modifié car la question doit être refactorisée –