我實現了改裝,我送我的登錄請求@header但是當我打電話一些身份驗證請求,則返回我的401(未authorizated)。基本身份驗證改造+基本身份驗證
如何實現它的通用?或者我總是需要用@header調用我的身份驗證請求?
@GET("user")
Call<User> getUserByEmail(@Query("email") String email, @Header("Authorization") String authorization);
當我打電話獲取用戶通過電子郵件(我認證用戶)...
@PUT("usuario/{userId}/")
Call<User> putUserById(@Path("userId") Integer id, @Body User user);
當我打電話把用戶(我需要驗證的請求)。
我的改裝類...
public class NetworkService {
private NetworkAPI networkAPI;
private OkHttpClient okHttpClient;
public NetworkService() {
okHttpClient = buildClient();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BuildConfig.HOST)
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
networkAPI = retrofit.create(NetworkAPI.class);
}
public NetworkAPI getAPI() {
return networkAPI;
}
private OkHttpClient buildClient() {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
return response;
}
});
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
//this is where we will add whatever we want to our request headers.
Request request = chain.request().newBuilder()
.addHeader("Accept", "application/json")
.addHeader("Content-Type", "application/json")
.build();
return chain.proceed(request);
}
});
return builder.build();
}
}
有人能幫助我嗎?
一些基本的認證對象的樣本串授權*或者我總是需要調用我的@header認證請求?*這取決於你如何實現你的服務器上的身份驗證,以及如何識別請求/設備 –
你能告訴我一個示例使其通用? –
您可以RequestInterceptor請求添加標題和攔截器添加到您的RestAdapter。並且對於每個請求都使用此休息適配器,以便您不必每次都添加標題。 – rushi