大佬教程收集整理的这篇文章主要介绍了android Volley删除方法,为什么会发送空参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public void deletePoint(String id) throws JSONException { dialog.show(); queue = Volley.newrequestQueue(getActivity(),new ExthttpClientStack(new SslhttpClient().gethttpClient())); String urlrequest = getUrl(); JSONObject param = new JSONObject(); param.put("id",id); JsonObjectrequest userrequest = new JsonObjectrequest(request.Method.deletE,urlrequest,param,deletePointrequestsuccessListener(),reqErrorListener()){ @Override public Map<String,String> getHeaders() throws AuthFailureError { Map<String,String> headers = super.getHeaders(); if (headers == null || headers.equals(Collections.emptymap())) { headers = new HashMap<String,String>(); } if (ProgressFragment.this.headers != null) { headers.keySet().removeAll(ProgressFragment.this.headers.keySet()); headers.putAll(ProgressFragment.this.headers); } headers.put("Content-Type","application/json"); return headers; } }; userrequest.setRetryPolicy(new DefaultRetryPolicy( MY_SOCKET_TIMEOUT_MS,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); dialog.show(); queue.add(userrequest); } private Response.Listener<JSONObject> deletePointrequestsuccessListener() { return new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject responsE) { dialog.hide(); Gson gson = new Gson(); success resp = gson.fromJson(response.toString(),success.class); if(resp.issuccess()){ Toast.makeText(getActivity(),getString(R.String.success),Toast.LENGTH_SHORT).show(); try { getGraphData(); } catch (JSONException E) { e.printStackTrace(); } } dialog.hide(); } }; }
你可以重写HurlStack类
public class HurlStack implements httpStack { break; case Method.deletE: connection.setrequestMethod("deletE"); addBodyIfExists(connection,request); // here call addBodyIfExists method break; case Method.POST: connection.setrequestMethod("POST");@H_705_2@mQueue = Volley.newrequestQueue(context); Stringrequest postrequest = new Stringrequest(request.Method.deletE,httpUtilS.URL_MSG,new Response.Listener<String>() { @Override public void onResponse(String responsE) { if (mCallBACk!=null) { mCallBACk.success(responsE); } } },new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { if (mCallBACk!=null) { mCallBACk.fail(null); } } } ) { @Override protected Map<String,String> getParams() { return params; } }; mQueue.add(postrequest);
那只能解决android os 5.0设备的问题
android os 4.2.2设备上有新问题
它将引发以下异常
java.net.ProtocolException: deletE does not support wriTing
重写Volley.newrequestQueue(Context context,httpStack stack)方法可以解决这个问题
public static requestQueue newrequestQueue(Context context,httpStack stack) { . . . if (stack == null) { if (Build.VERSION.SDK_INT >= 9) { stack = new OkhttpStack(); } else { // Prior to Gingerbread,httpUrlConnection was unreliable. // See: http://android-developers.blogspot.com/2011/09/androids-http-clients.html stack = new httpClientStack(androidhttpclient.newInstance(userAgent)); } } . . . return queue; }
OkhttpStack.java(okhttp-1.6.0.jar)
public class OkhttpStack extends HurlStack { private final OkhttpClient client; public OkhttpStack() { this(new OkhttpClient()); } public OkhttpStack(OkhttpClient client) { if (client == null) { throw new NullPointerException("Client must not be null."); } this.CLIENt = client; } @Override protected httpURLConnection createConnection(URL url) throws IOException { return client.open(url); } }
它对我有用,希望能为你效劳
以上是大佬教程为你收集整理的android Volley删除方法,为什么会发送空参数全部内容,希望文章能够帮你解决android Volley删除方法,为什么会发送空参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。