#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 и передайте необходимое поле и заголовки.