Как я могу добавить securityToken к этому результату? - PullRequest
0 голосов
/ 28 октября 2019

D / OkHttp: {"code": 60202, "message": "Требуется токен"}

Это ошибка сервера. Я хочу решить код в этой результативности. Я уже настраиваю securityToken здесь, но как я могу добавить securityToken в request ()?

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

        val securityToken = SaveSharedPreference.getUserInfo(this)

        val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data)


                Client.retrofitService.request(result.contents).enqueue(object : Callback<String?> {
                    override fun onFailure(call: Call<String?>, t: Throwable) {

                    }

                    override fun onResponse(
                        call: Call<String?>?,
                        response: Response<String?>?
                    ) {
                        if (response?.isSuccessful == false) {
                            val er = Gson().fromJson(response.errorBody()?.charStream(), ErrorResponse::class.java)
                            Log.d(_tag, "${er.code}:${er.message}")
                            if (er.code == 60201 || er.code== 60202)
                          {
                                Toast.makeText(this@Qrcode, "토큰이 유효하지 않습니다.", Toast.LENGTH_SHORT).show()

                            } else if (securityToken !=null) {
                            Log.d(_tag, "status: ${response?.code()}. body: ${response?.body()}")

                        }


                    }

                    }

                })
            }

}```

1 Ответ

0 голосов
/ 31 октября 2019

Вы можете добавить дополнительный параметр в свой запрос, например:

interface RetrofitService {  
    @GET("/request")
    request(@Query("parameter") parameter: String, @Header("Security-Token") securityToken: String): Call<String>
}

Или,

Вы можете создать OkHttpClient для своего Retrofit при создании RetrofitService:

RetrofitService:

interface RetrofitService {  
    @GET("/request")
    request(@Query("parameter") parameter): Call<String>
}

Модификатор Builder:

val securityToken = "securityTokenString"

val okHttpClient = OkHttpClient.Builder()
    .addInterceptor { chain ->
        val request = chain.request()

        val newRequestBuilder = request.newBuilder()
            .header("Security-Token", securityToken)

        chain.proceed(newRequestBuilder.build())
    }

val retrofit = Retrofit.Builder()
    .addConverterFactory(gsonConverterFactory)
    .client(okHttpClient)
    .baseUrl(BASE_URL)
    .build()

val retrofitService = retrofit.create(RetrofitService::class.java)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...