recyclerview implementar java android server retrofit retrofit2

implementar - retrofit java server



Retrofit “Autorización”, “Portador”+token (2)

Si desea agregar un token de portador como encabezado, puede hacer ese tipo de proceso. Esta es una manera de trabajar con el token de Bearar.

En su interfaz

@Headers({ "Content-Type: application/json;charset=UTF-8"}) @GET("api/Profiles/GetProfile") Call<UserProfile> getUser(@Query("id") String id, @Header("Authorization") String auth);

Después de eso, llamarás al objeto Retrofit de esta manera.

Retrofit retrofit = new Retrofit.Builder() .baseUrl("your Base URL") .addConverterFactory(GsonConverterFactory.create()) .build(); APIService client = retrofit.create(APIService.class); Call<UserProfile> calltargetResponce = client.getUser("0034", "Bearer "+token); calltargetResponce.enqueue(new Callback<UserProfile>() { @Override public void onResponse(Call<UserProfile> call, retrofit2.Response<UserProfile> response) { UserProfile UserResponse = response.body(); Toast.makeText(this, " "+response.body(), Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Call<UserProfile> call, Throwable t) { //Toast.makeText(this, "Failed ", Toast.LENGTH_SHORT).show(); } });

Otra forma es usar la intercepción ... que es similar a la respuesta anterior, pero esa vez, solo necesita modificar la interfaz.

@Headers({ "Content-Type: application/json;charset=UTF-8"}) @GET("api/Profiles/GetProfile") Call<UserProfile> getUser(@Query("id") String id);

Espero que esto funcione para usted

Estoy tratando de usar Retrofit (2) , quiero agregar Token a mi Header Así:
Authorization: Bearer Token pero el code siguiente no funciona:

public interface APIService { @Headers({ "Authorization", "Bearer "+ token }) @GET("api/Profiles/GetProfile?id={id}") Call<UserProfile> getUser(@Path("id") String id); }

mi servidor es asp.net webApi ayuda, ¿qué debo hacer?


Tiene dos opciones: puede agregarlo como un parámetro a su llamada.

@GET("api/Profiles/GetProfile?id={id}") Call<UserProfile> getUser(@Path("id") String id, @Header("Authorization") String authHeader);

Esto puede ser un poco molesto porque tendrá que pasar el "Bearer" + token en cada llamada. Esto es adecuado si no tiene muchas llamadas que requieren el token.

Si desea agregar el encabezado a todas las solicitudes, puede usar un interceptor okhttp -

OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request newRequest = chain.request().newBuilder() .addHeader("Authorization", "Bearer " + token) .build(); return chain.proceed(newRequest); } }).build(); Retrofit retrofit = new Retrofit.Builder() .client(client) .baseUrl(/** your url **/) .addConverterFactory(GsonConverterFactory.create()) .build();