E /错误:retrofit2.adapter.rxjava2.HttpException:HTTP 401在Kotlin android中未经授权

时间:2018-09-05 07:02:22

标签: android kotlin retrofit2 rx-java2 rx-android

这是我试图从api中获取的响应

{
    "success": {
        "id": 35,
        "otp": 9830,
        "msg": "Otp has sent on this number"
    }
}

在邮递员中签入后,响应绝对正常。但是,当我尝试通过解析android kotlin中Hashmap格式的响应来获取相同的json时,我得到了E / Error:retrofit2.adapter.rxjava2.HttpException:HTTP 401未经授权

现在,这是我的android rxjava kotlin代码,如下所示,我在其中传递所有必需的参数,但响应进入错误块。代码如下

override fun login(api_token: String, name: String, mobile: String, lat: String, lon: String, address: String) {

      var subscribe = api.login(api_token,mobile.toInt(),lat.toDouble(),lon.toDouble(),address).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe({ list: LoginParentResponseModel? ->
                    Log.i("login",list!!.toString())
                    view.showProgress(false)
                    view.loadLoginSuccess(list!!.success)
                }, { error ->
                    view.loadLoginFailure("loginfailed")
                    view.showProgress(false)
                    view.showErrorMessage("problen"+error.toString())


                })
        subscriptions.add(subscribe)


}

现在这是用于响应处理的Model类

data class LoginParentResponseModel(val success : Map<String,String>,val error : Map<String,String>)

现在这是api及其参数,就像我在邮递员中使用的

@FormUrlEncoded
    @POST("api/register?")
    fun login(@Field("api_token") id: String, @Field("mobile") mobile: Int,@Field("lat") lat: Double,@Field("lon") lon: Double,@Field("address") address: String): Observable<LoginParentResponseModel>

请帮助我解决此问题。您的帮助将不胜感激。预先感谢

0 个答案:

没有答案