
? ?
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?以上就是小編今天的分享了,希望可以幫助到大家。
