В моем приложении я использую API, рабочий сервер которого открыт, но сервер dev защищен входом в систему htaccess.
Мне нужно протестировать что-то, находящееся на сервере dev сервера api, но не могу обойти эту стену htaccess.
Я думал, что смогу поместить ее в URL, как вы делаете в браузере, например "https://username:password@example.com", который я Осознание создает некоторые открытые проблемы с учетными данными, но я могу придумать несколько способов обойти это.
Но без кубиков. Я получаю 401 неавторизованные ошибки, а затем, когда я нажимаю на ссылку, для которой я получил 401 неавторизованную ошибку, он прекрасно загружает json API в моем браузере.
Есть ли способ обойти htaccess в retrofit2? Мой код ниже с учетными данными и переменными, конечно, скрыт.
мой модифицированный интерфейс:
public interface DevApi {
@POST("api/{data0}/{data1}/{data2}")
fun getMoviesByCategory(@Path("data0") data0: String, @Path("data1") data1: Int, @Path("data2") data2: Int): Single<ArrayList<KMovie>>
}
мой класс интерактора:
class KMovieInteractorImpl : KMovieInteractor {
@Inject
lateinit var testAPI: DevApi
init {
DaggerMovieInteractorComponent.create().inject(this)
}
override fun getGenreMovies(data0: String, data1: Int, data2: Int): Single<ArrayList<KMovie>> {
return testAPI.getMoviesByCategory(data0, data1, data2).subscribeOn(Schedulers.io())
}
}
выход logcat:
2020-04-13 16:56:33.839 11675-11935/com.myapp D/OkHttp: --> POST https://user:password@dev.api.biz/api/data0/data1/data2
2020-04-13 16:56:33.841 11675-11937/com.myapp D/OkHttp: --> POST user:password@dev.api.biz/api/data00/data1/data2
2020-04-13 16:56:34.153 11675-11937/com.myapp D/OkHttp: <-- 401 Unauthorized user:password@dev.api.biz/api/data0/data1/data2(312ms)
2020-04-13 16:56:34.157 11675-11937/com.myapp D/OkHttp: <address>Apache/2.4.29 (Ubuntu) Server at dev.api.biz Port 443</address>
2020-04-13 16:56:34.178 11675-11935/com.myapp D/OkHttp: <-- 401 Unauthorized https://user:password@dev.api.biz/api/data00/data1/data2 (337ms)