package com.bczm.widgetcollections.http.protocol; import com.android.volley.AuthFailureError; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.StringRequest; 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.FileUtils; import com.bczm.widgetcollections.utils.LogUtils; 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.Map; /** * 顶部6个流行位置 * @author:Jorge on 2015/9/16 10:57 */ public class RecommendedPopProtocol extends BaseProtocol<ArrayList<RecommandPositionInfo>> { boolean waitflag=true; String result =""; @Override protected String loadFromNet(int index) { // 轮播图下面的六个item StringRequest popContentRequest=new StringRequest(NetUtils.FETCH_POPULAR_CONTENT, new Response.SuccessListener<String>() { @Override public void onResponse( String s) { LogUtils.e("StringRequest:"+s.toString()); result=s; waitflag=false; } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { result= null; waitflag=false; UIUtils.showToastSafe(volleyError.toString()); } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { return ConfigManage.getHeaders(); } }; HttpUtil.getRequestQueue().add(popContentRequest); while(waitflag){ } return result; } @Override protected String getKey() { return "recommendedpopprotocol"; } @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(); } LogUtils.e("StringRequest:"+resultList.size()); return resultList; } }