J'ai besoin d'utiliser OkHttp dans Java comme client HTTP et envoyer l'en-tête d'autorisation dans la demande.
exemple:
Autorisation: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRaswczovL2F1dGgucGF4aW11bS5djb20iLCJhdWQiOiJodHRwczovL2FwaS5wYXhpbXVtLmNvbSIsIm5iZiI6MTQ0ODQzNzkyMCwiZXhwIjoxNDQ4NDgxMTIwLCJzdWIiOiIzNzExZDk1YS03MWU1LTRjM2ItOWQ1YS03ZmY3MGI0NDgwYWMiLCJyb2xlIjoicGF4OmIyYjphcHA6dXNlciJ9.YR8Gs7RVM-q5AxtHpeOl2zYe-zKxh5u39TUeTbiZL1k
comment puis-je créer ce jeton en utilisant mon nom d'utilisateur et mon mot de passe? nom d'utilisateur: test mot de passe: test
Selon la documentation ici
private final OkHttpClient client = new OkHttpClient();
private final String url = "http://test.com";
public void run(String token) throws Exception {
Request request = new Request.Builder()
.url(url)
//This adds the token to the header.
.addHeader("Authorization", "Bearer " + token)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()){
throw new IOException("Unexpected code " + response);
}
System.out.println("Server: " + response.header("anykey"));
}
}
La réponse ci-dessus conduit à un chemin correct mais nécessite quelques modifications.
private Response requestBuilderWithBearerToken(String userToken) throws IOException {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(YourURL)
.get()
.addHeader("cache-control", "no-cache")
.addHeader("Authorization" , "Bearer " + userToken)
.build();
return client.newCall(request).execute();
Pour Android Version Okhttp
public Call post (String url, String json, Callback callback, String token) { OkHttpClient client = new OkHttpClient (); RequestBody body = RequestBody.create (JSON, json); Request request = new Request.Builder () .Url (url) .AddHeader ("Authorization", "Bearer "+ jeton) .post (corps) .build (); Call call = client.newCall (request); call.enqueue (callback) ; Retour d'appel; }
n'oubliez pas de mettre de l'espace après le mot clé Bearer.