? ?
java retrofit是什么?讓我們一起來了解一下吧!
java retrofit是Java在開發時的一種輕量級http請求部分組件,它的作用是能夠像接口調用這種方法來進行http調用。Retrofit在它的前期主要是應用在安卓的網絡請求框架,之后也被用于java。
更確定的說,Retrofit 是一個 restful 的 http 網絡請求框架的封裝。
1. App應用程序通過 Retrofit 請求網絡,事實上是通過應用?Retrofit 接口層封裝去獲得參數、Header、Url 等信息,然后由 OkHttp 完成后面的請求動作。
2. 在服務端返回數據之后,OkHttp 把原先的結果過渡給 Retrofit,Retrofit按照用戶的需求對結果進行分析。所以,網絡請求的本質事實上依舊是由OkHttp完成的,retrofit只是幫使用者來進行工作簡便化的,比如配置網絡,處理數據等工作,提高這一系列操作的復用性。
實戰演練,具體步驟如下:
package?request.http.com.httprequest.activity; ? import?android.app.Activity; import?android.os.Bundle; import?android.support.v7.widget.DefaultItemAnimator; import?android.support.v7.widget.DividerItemDecoration; import?android.support.v7.widget.LinearLayoutManager; import?android.support.v7.widget.RecyclerView; import?android.util.Log; import?android.widget.ImageView; import?butterknife.BindView; import?butterknife.ButterKnife; import?butterknife.Unbinder; import?okhttp3.OkHttpClient; import?okhttp3.RequestBody; import?okhttp3.logging.HttpLoggingInterceptor; import?request.http.com.httprequest.R; import?request.http.com.httprequest.adapter.RecyclerViewAdapter; import?request.http.com.httprequest.api.RequestApi; import?request.http.com.httprequest.bean.TokenInfoBean; import?request.http.com.httprequest.bean.goodsBean; import?request.http.com.httprequest.bean.goodsSuitBean; import?request.http.com.httprequest.bean.singleBean; import?request.http.com.httprequest.common.CommonFunc; import?request.http.com.httprequest.common.Tools; import?request.http.com.httprequest.common.retrofitCommon; import?retrofit2.Call; import?retrofit2.Callback; import?retrofit2.Response; ? import?java.util.ArrayList; import?java.util.HashMap; ? ? public?class?MainActivity?extends?Activity?{ ????private?Unbinder?unbinder; ????@BindView(R.id.lv_showDetail) ????RecyclerView?lv_showDetail; ????private?ArrayList?dataBeanList; ????private?RecyclerViewAdapter?adapter; ????private?DefaultItemAnimator?defaultItemAnimator; ????private?RequestApi?requestApi; ????private?RequestBody?body; ????private?HashMap?hashMap; ????private???String?authorizationCode; ????private??String?appKey; ????private?singleBean?singleBean; ????private?TokenInfoBean?tokenInfoBean; ????private?ArrayList?singleList; ????private?goodsSuitBean?goodsSuitBean; ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ????????unbinder?=?ButterKnife.bind(this); ????????initView(); ? ????} ????public?void??initRecyclerView(){ ????????LinearLayoutManager?manager?=?new?LinearLayoutManager(this); ????????lv_showDetail.setLayoutManager(manager); ????????DividerItemDecoration?dividerItemDecoration?=?new?DividerItemDecoration(this,????DividerItemDecoration.VERTICAL); ????????dividerItemDecoration.setDrawable(getApplicationContext().getDrawable(R.drawable.rv_item_devider)); ????????lv_showDetail.addItemDecoration(dividerItemDecoration); ????????adapter?=?new?RecyclerViewAdapter(MainActivity.this,?dataBeanList); ????????lv_showDetail.setAdapter(adapter); ????????adapter.notifyDataSetChanged(); ? ????} ????public??void??initView()?{ ????????retrofitCommon????retrofitCommon?=?new?retrofitCommon(); ????????authorizationCode?=?CommonFunc.getBasicAuthorizationCode("user","asdasdsd"); ????????appKey?=?CommonFunc.getFinplexAppKey(); ????????requestApi=???retrofitCommon.retrofitRequestPost(“訪問接口的地址”); ????????body?=??retrofitCommon.getRequestBody("code","1232131312"); ????????hashMap?=??retrofitCommon.getRequestParam(authorizationCode,appKey); ????????requestApi.getGroupGoods(body,hashMap).enqueue(new?Callback()?{ ????????????@Override ????????????public?void?onResponse(Call?call,?Response?response)?{ ????????????????callSuccessResponse(response); ????????????} ????????????@Override ????????????public?void?onFailure(Call?call,?Throwable?t)?{ ????????????????callErrorResponse(t); ????????????} ????????}); ????} ????private??void?callSuccessResponse(?Response?response){ ????????dataBeanList?=?new?ArrayList<>(); ????????goodsBean?goods?=?response.body(); ????????goodsSuitBean?=?goods.getGoodsSuit(); ????????singleList?=?goods.getDataList(); ????????tokenInfoBean?=?goods.getTokenInfo(); ????????for?(int?i=0;i?以上就是小編今天的分享了,希望可以幫助到大家。