package com.bczm.widgetcollections.http.protocol; import com.android.volley.AuthFailureError; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.bczm.widgetcollections.bean.RecommandPositionInfo; import com.bczm.widgetcollections.http.ConfigManage; import com.bczm.widgetcollections.http.HttpUtil; import com.bczm.widgetcollections.http.NetUtils; import com.bczm.widgetcollections.http.parse.JsonHelper; import com.bczm.widgetcollections.utils.LogUtils; import com.bczm.widgetcollections.utils.SharedPreferenceUtils; import com.bczm.widgetcollections.utils.UIUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /** * 顶部轮播图的请求 * @author:Jorge on 2015/9/14 17:51 */ public class RecommandTopProtocol extends BaseProtocol<ArrayList<RecommandPositionInfo>>{ String result =""; boolean waitflag=true; @Override protected String loadFromNet(int index ) { // 顶部轮播图数据 JsonObjectRequest topContentRequest=new JsonObjectRequest(NetUtils.FETCH_HOME_TOP_CONTENT,null, new Response.SuccessListener<JSONObject>() { @Override public void onResponse(final JSONObject object) { result= object.toString(); waitflag=false; } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { UIUtils.showToastSafe(volleyError.toString()); waitflag=false; result=null; } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { return ConfigManage.getHeaders(); } }; topContentRequest.setTag("topContentRequest"); HttpUtil.getRequestQueue().add(topContentRequest); HttpUtil.getRequestQueue().addRequestFinishedListener(new RequestQueue.RequestFinishedListener<Object>() { @Override public void onRequestFinished(Request<Object> request) { LogUtils.e("topContentRequest:onRequestFinished----"+request.getTag()); } }); while(waitflag){ } return result; } @Override protected String getKey() { return "recommandtopprotocol"; } @Override protected ArrayList<RecommandPositionInfo> parseFromJson(String json) { return parseJson(json); } public ArrayList<RecommandPositionInfo> parseJson(String json){ ArrayList<RecommandPositionInfo> resultList = null; try { JSONObject object= new JSONObject(json); resultList = new ArrayList<RecommandPositionInfo>(); if(!object.has("items")) return null; JSONArray arrays= object.optJSONArray("items"); JsonHelper.JSONArrayToList(arrays, resultList, RecommandPositionInfo.class); } catch (JSONException e) { e.printStackTrace(); } return resultList; } }