java - 是否可以将字符串传递给接口(interface)?或者至少从接口(interface)内的 SharedPreferences 获取?

标签 java android android-studio

我正在尝试从 SharedPreferences 中获取存储的 JWT,以便我可以将它们作为请求中的 header 发送,但我无法在 API 接口(interface)内获取该数据。这可能吗?

谢谢

<小时/>

已解决:

对于任何寻找此内容的人:您可以将 header 作为参数传递,例如:

@FormUrlEncoded
@POST("users/getUser")
Call<String> getUser(
        @Header("Token") String token,
        @Field("user") String user
);

最佳答案

您还可以使用集成的拦截器在所有请求上添加此 token ,如下所示:

public class AuthInterceptor
    implements Interceptor {
@Override
public Response intercept(Chain chain)
        throws IOException {
    Request request = chain.request();
    request = request.newBuilder()
            .addHeader("Token", new MySharedPref().getToken())
                .build();
        return chain.proceed(request);
    }
}

然后在您的 OkHttpClient 上添加它的实例:

OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
httpClient.addNetworkInterceptor(new AuthInterceptor());
Retrofit retrofit = new Retrofit.Builder()
       ...
        .client(httpClient.build())

        .build();

关于java - 是否可以将字符串传递给接口(interface)?或者至少从接口(interface)内的 SharedPreferences 获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055811/

相关文章:

java - Maven 2报 'java.util.List' cannot be instantiated错误

java - 对于 JAVA SWT 中禁用的控件,工具提示不可见

android - 使用 RelativeLayout 对齐 fragment

Android自定义小部件膨胀异常

gradle - Android-Studio 从 0.1.9 升级到 0.2.0 现在导致 gradle 构建错误

java - 如何从数组列表中获取未通过 mouseclicklistener 选择的对象?

java - ReactFX Consumer 监听多个 EventStream

android - Lollipop isPowerSaveMode 始终返回 false

android - 如何将多个矢量绘图导入 Android Studio 项目

android - 如何在 Android 模块之间共享依赖项