volley Request添加Header的HTTP请求
发表于:2024-11-30 作者:热门IT资讯网编辑
编辑最后更新 2024年11月30日,package com.example.zbclient.util;import java.util.HashMap;import java.util.Map;import org.json.JSON
package com.example.zbclient.util;import java.util.HashMap;import java.util.Map;import org.json.JSONException;import org.json.JSONObject;import com.android.volley.AuthFailureError;import com.android.volley.DefaultRetryPolicy;import com.android.volley.VolleyError;import com.android.volley.Request.Method;import com.android.volley.Response.ErrorListener;import com.android.volley.Response.Listener;import com.android.volley.toolbox.JsonObjectRequest;import com.example.zbclient.MyApplication;import com.example.zbclient.encryption.MCrypt;import android.content.Context;import android.util.Base64;import android.util.Log;/** * 网络数据请求 * * @author yxx * * @date 2015-12-23 下午7:48:08 * */public class RequestUtil{public static boolean isShow = false;/** * @param resres (-1:服务器报错 0: 成功 -2:本地报错) * @param remark 报错内容 * @param jsonArray msg内的jsonArray数据 */public static abstract class RequestCallback {public abstract void callback(String res, String remark, JSONObject jsonObject);}public RequestUtil(Context context){}/** * @param context 上下文 * @param strTitle 刷新提示内容 * @param flag 是否弹出刷新窗口 * @param strUrl 请求地址 * @param jsonObject 请求参数 * @param callback 请求数据回调 */public static void getReuestData(final Context context, String strTitle, boolean flag, String strUrl, JSONObject jsonObject, final RequestCallback callback){MyApplication.getInstance().mRandom = CommandTools.CeShi();MyApplication.getInstance().sendTime = CommandTools.initDataTime();if(CommandTools.isNetworkAvailable(context) == false){CommandTools.showToast(context, "网络错误,请检查网络配置");return;}if(flag == true){CustomProgress.showDialog(context, strTitle, true, null);}Log.e("upload", "---------------------------------------------");Log.i("upload", "动作: " + strTitle);Log.i("upload", Constant.FormalURL + strUrl);Log.i("upload", jsonObject.toString());Log.e("upload", "---------------------------------------------");JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Method.POST, Constant.FormalURL + strUrl, jsonObject.toString(), new Listener() {@Overridepublic void onResponse(JSONObject jsonObject) {Log.v("file", jsonObject.toString());CustomProgress.dissDialog();String strRes = null;String strRemark = null;try {strRes = jsonObject.getString("res");strRemark = jsonObject.getString("remark");} catch (JSONException e) {e.printStackTrace();}finally{callback.callback(strRes, strRemark, jsonObject);}}}, new ErrorListener() {@Overridepublic void onErrorResponse(VolleyError arg0) {CustomProgress.dissDialog();callback.callback("-1", arg0.getMessage() + "", null);}}) { @Override public Map getHeaders() throws AuthFailureError { HashMap headers = new HashMap (); try {MCrypt mCrypt = new MCrypt();headers.put("accept", "text/json"); headers.put("sendtime", MyApplication.getInstance().sendTime); headers.put("sign", Base64.encodeToString(mCrypt.encrypt(MyApplication.getInstance().mSign), Base64.NO_WRAP)+MyApplication.getInstance().mRandom);} catch (Exception e) {e.printStackTrace();}return headers; }};jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(5 * 1000, 1, 1.0f));MyApplication.getQueue().add(jsonObjectRequest);}}