KotlinはRetrofit 2.0を使用


まずgradle Retrofit 2.0をインポート
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

ダイレクトコード
interface GetRequest_Interface {
    @GET("channels/3?pageNo=1&pageSize=20&v=4.0.0")
    fun getCall() : Call
    // @GET     :  Get        
    // getCall() =            
    //        Call,*       (      Translation )
    //        Responsebody    ,            Call
    //    URL  

    @GET("channels/3?pageNo={page}&pageSize=20&v=4.0.0")
    fun getIpMsgPath(@Path("page") page: String):Call

    //        
    @GET("getIpInfo.php")
    fun getIpMsgQuery(@Query("ip") ip:String):Call

    //         
    @GET("getIpInfo.php")
    fun getIpMsgQueryMap(@QueryMap option:Map):Call

    //Post       
    @FormUrlEncoded
    @POST("getIpInfo.php")
    fun getIpMsgPost(@Field("ip") first:String):Call

    //POST JSON    
    @POST("getIpInfo.php")
    fun getIpMsgPostBody(@Body ip: String):Call

    //     
    @Multipart
    @POST("user/photo")
    fun upDateUser(@Part photo: MultipartBody.Part, @Part("description") description: RequestBody):Call
    //     
    @Multipart
    @POST("user/photo")
    fun upDateUser(@PartMap photos:Map, @Part("description") description: RequestBody):Call
}

エンティティークラス
 class MyCarBean(var data:List) {
     class CarInfo(
    var articleType: String,
    var count: String,
    var downs: String,
    var firstImg: String,
    var id: String,
    var image: String,
    var mtime: String,
    var pubDate: String,
    var title: String,
    var ups: String,
    var url: String
    )
}

直接MainActivityでデータを要求する
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        initData()
    }

    private fun initData() {
        var retrofit = Retrofit.Builder()
                .baseUrl("http://mrobot.pcauto.com.cn/v2/cms/")  //       /      
                .addConverterFactory(GsonConverterFactory.create())
                .build()
        val ipService = retrofit.create(GetRequest_Interface::class.java)
        ipService.getCall().enqueue(object: Callback {
            override fun onResponse(call: Call?, response: Response?) {
                //  
                var myCarBean: MyCarBean? = response!!.body()
                var myCarBeanLists: List.CarInfo> = myCarBean!!.data

                for (ca in myCarBeanLists){
                    Log.v("maz",ca.title)
                }
            }
            override fun onFailure(call: Call?, t: Throwable?) {
                //  
            }
        })
    }
}

本文はブロガーのオリジナル文章で、ブロガーの許可を得ずに転載してはならない.https://mp.csdn.net/mdeditor/81903347