retrofit2.HttpException:Android 中的 HTTP 302

Posted

技术标签:

【中文标题】retrofit2.HttpException:Android 中的 HTTP 302【英文标题】:retrofit2.HttpException: HTTP 302 in Android 【发布时间】:2021-10-11 23:24:39 【问题描述】:

我一直在努力解决这个问题,我正在尝试使用此代码进行改造来调用 API

interface HTTPService 

    @GET("/v1/breeds")
    suspend fun getbreeds():BreedList



class Retrofitclass 

    companion object
        val BaseURL = "https://docs.thedogapi.com"
            fun getRetroInstance(): Retrofit 
                val gson = GsonBuilder()
                    .setLenient()
                    .create()

                return Retrofit.Builder()
                    .baseUrl(BaseURL)
                    .addConverterFactory(GsonConverterFactory.create(gson))
                    .build()

            
    

在视图模型中:

  fun makeApiCall()

        viewModelScope.launch(Dispatchers.IO)
       //  try 
                val retroinstance = Retrofitclass.getRetroInstance().create(HTTPService::class.java)
                val response = retroinstance.getbreeds()
            print("responce"+ response  )
                selectdatalist.postValue(response)
          //   catch (e: Exception) 
            // print("error"+e.printStackTrace())
      // 
        
    

我尝试在 build.gradle 中添加这些代码但对我没有任何帮助或建议:

compile 'com.squareup.retrofit2:retrofit:2.0.0-SNAPSHOT'
    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
    compile 'com.squareup.okhttp3:okhttp:3.0.1'

【问题讨论】:

【参考方案1】:

回调

手段的改造工作
class Retrofitclass 

companion object
    val BaseURL = "https://docs.thedogapi.com"
    fun getRetroInstance(): Retrofit 
        val gson = GsonBuilder()
            .setLenient()
            .create()

        return Retrofit.Builder()
            .baseUrl(BaseURL)
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build()

    

interface HTTPService 

/**
*DataClass your class the of data what represent of data request of Api
/*
@GET("/v1/breeds")
suspend fun getbreeds(): Call<DataClass>

fun getApiBreeds 
   val retrofitClient = Retrofitclass.getRetrofit(PATH)
   val endPoint = retrofitClient.create(HTTPService::class.java)
   val callback = endPoint.getbreeds()

callback.enqueue(object : Callback<DataClass> 
    override fun onResponse(
        call: Call<DataClass>,
        response: Response<DataClass>
    ) 
        if (response.isSuccessful) 
            Log.d("Response", response.body().toString())
        
    

    override fun onFailure(call: Call<DataClass>, t: Throwable) 
        t.printStackTrace()
    

)

//example DataClass

数据类品种( var 标题:字符串, val 状态:字符串, )

依赖

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'

在 ViewModel 中:

fun makeApiCall()

    viewModelScope.launch(Dispatchers.IO)
        getApiBreeds()

【讨论】:

以上是关于retrofit2.HttpException:Android 中的 HTTP 302的主要内容,如果未能解决你的问题,请参考以下文章

20170924 a20170924 a

a++和++a的区别

逻辑代数

python运算符

运算符

arraylist排序 例如值 a104,a106,a102,a92,a98,a94 结果a92,a94,a98,a102,a104,a106