Можно ли добавить ключи API в заголовок с помощью Retrofit2 android

#android #api #retrofit2 #api-key

#Android #API #модернизация 2 #api-ключ

Вопрос:

Не удается получить запрос API для работы с ключом API. Я уже протестировал его с помощью другого API, который не использует ключ API, и это сработало. Заставляет меня думать, что я неправильно добавляю ключ API.

Протестировал его на почтальоне, используя вкладку аутентификации, которая хорошо работает.

Как я могу отправить ключ доступа-Ключ и значение 9xxxxxxxxxxxxx3 с помощью retrofit2?

код

Ответ №1:

Когда вы вызываете R. string.api_key, вы не получаете строковое значение, вы получаете только его идентификатор, который представлен в виде числа. Чтобы получить значение, вам нужно иметь контекст и вызвать context.getString(R. string.api_key). В нашем случае лучше вынуть его из string.xml и отнесите его в какой-нибудь класс. Например

 object Constants {  const val BASE_URL = "http://test.com/" }  

а затем внутри модернизации

 return Retrofit.Builder()  .baseUrl(Constants.BASE_URL)  

но если вы хотите получить значение от string.xml вам нужно изменить метод getInstance() из примера добавления контекста.

Ответ №2:

Вы можете отправлять заголовки, такие как:

 public interface APIService {  //Login @FormUrlEncoded @POST("loginAction") Calllt;LoginModelgt; loginMI(  @Field("username") String username,  @Field("pwd") String pwd,  @Header("api_key") String api_key,  @Header("secret_key") String secret_key );  

}

вызовите вышеуказанный API и передайте необходимое поле и заголовки.