У меня в приложении у пытаюсь обновить access token используя refresh_token. Вот в документации у меня прописан удачный ответ сервера при правильном запросе:
HTTP 200
{
"expires_in": UNIX_TIMESTAMP,
"access_token": str,
"refresh_token": str
}
я создал в интерфейсу запрос:
@Headers("Content-type: application/json")
Call<GetToken> getNewToken (@Path("refresh_token") String refresh_token);
дальше у меня строится запрос в самом классе:
public void updateToken() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
tok_pref2 = Objects.requireNonNull(getActivity()).getSharedPreferences(REFRESH_TOKEN,Context.MODE_PRIVATE);
String token = tok_pref2.getString(REFRESH_TOKEN,"");
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://сервер/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService mAPIService2 = retrofit.create(APIService.class);
mAPIService2.getNewToken(token).enqueue(new Callback<GetToken>() {
@Override
public void onResponse(@NonNull Call<GetToken> call,@NonNull Response<GetToken> response) {
}
@Override
public void onFailure(@NonNull Call<GetToken> call,@NonNull Throwable t) {
Toast.makeText(getContext(),"Failure!!!",LENGTH_LONG).show();
}
});
}
в тело запроса я вставляю рефреш токен который я предварительно сохранил в sharedpreferences, я проверил что при запросе он вставляется нормально, но почему-то у меня приходит такой ответ:
<-- 404 https://сервер/v1/токен (210ms)
Content-Length: 41
P3P: policyref="/w3c/p3p.xml", CP="NOI ADM DEV COM NAV OUR STP"
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json
08-14 03:04:54.257 3345-3394/com.example.developer_4.test_login D/OkHttp: {"message": "not_found", "error_code": 5}
<-- END HTTP (41-byte body)
может я где-то допустил ошибку при отправке запроса, буду очень благодарен за помощь.