web-dev-qa-db-fra.com

Créer un en-tête d'autorisation de porteur dans OkHttp java

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

7

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"));

     }
  }
8
Thankgod Richard

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();
7
user1154390

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.

0
AFTAB SHEIKH