带htaccess的改造电话

问题描述 投票:0回答:1

在我的应用程序中,我使用一个api,该api的生产服务器处于打开状态,但是其dev服务器受到htaccess登录的保护。

我需要测试api开发服务器中的某些内容,但无法绕过htaccess墙。

[我以为我可以将其放在URL中,您在诸如“ https://username:[email protected]”之类的浏览器中的实现方式会引起一些公开的凭据问题,但是我可以想到一些解决方法。

但是没有骰子。我收到401未经授权的错误,然后单击链接,我得到了401未经授权的错误,它会在浏览器中完美加载api的json。

在retrofit2中是否有解决htaccess的方法?我的代码在下面,当然还有凭据和变量。

我的改装界面:

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:[email protected]/api/data0/data1/data2
2020-04-13 16:56:33.841 11675-11937/com.myapp D/OkHttp: --> POST user:[email protected]/api/data00/data1/data2
2020-04-13 16:56:34.153 11675-11937/com.myapp D/OkHttp: <-- 401 Unauthorized user:[email protected]/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:[email protected]/api/data00/data1/data2 (337ms)
android .htaccess kotlin retrofit2 logcat
1个回答
0
投票

添加Authorization标头:

public interface DevApi {
    @POST("api/{data0}/{data1}/{data2}")
    fun getMoviesByCategory(@Header("Authorization") auth: String, 
                            @Path("data0") data0: String, 
                            @Path("data1") data1: Int,                         
                            @Path("data2") data2: Int): Single<ArrayList<KMovie>>
}

并将您的基本网址更改为dev.api.biz。您也可以使用OkHttp3中的Credentials.basic(user, password)函数创建auth标头。

© www.soinside.com 2019 - 2024. All rights reserved.