基本身份验证改造+基本身份验证
我实现了改装,我送我的登录请求@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( “授权”)的网络服务
Request request = chain.request().newBuilder()
.addHeader("Accept", "application/json")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "AuthorizationValue")
.build();
你可以简单的检查,如果(islogin){的addHeader(“授权”,“AuthorizationValue”)} –
我需要保存在我的应用程序类的信息? –
您可以使用共享偏好进行保存和加载 –
如果使用改造2,这里是在头
public interface SomeApi {
@Headers({
"Content-Type: application/json",
"Authorization: Basic KzY1OTY0MjA4NTQ6MTExMTE="
})
@POST("test/someService")
Completable getTrips();
}
一些基本的认证对象的样本串授权*或者我总是需要调用我的@header认证请求?*这取决于你如何实现你的服务器上的身份验证,以及如何识别请求/设备 –
你能告诉我一个示例使其通用? –
您可以RequestInterceptor请求添加标题和拦截器添加到您的RestAdapter。并且对于每个请求都使用此休息适配器,以便您不必每次都添加标题。 – rushi