2016-12-28 52 views
0

我想设置为application/json的内容类型,但即使覆盖getBodyContentType()应用程序/ JSON越来越凌空服务器错误后。设置应用程序/ JSON作为排球Stringrequest头的POST方法

StringRequest postRequest = new StringRequest(Request.Method.POST, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try { 
         listener.onResponse(response); 
         Log.d("Response",response.toString()); 

        } catch (Exception e) { 
         e.printStackTrace(); 
         if (response.length() == 0) { 
          Log.d("ERROR : ", "NO RESPONSE"); 
         } else { 
          Log.d("ERROR : ", "EXCEPTION"); 
         } 
        } 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        // error 
        listener.onError(error.toString()); 
        Log.d("Error.Response", error.toString()); 
       } 
      } 
    ) { 
     @Override 
     protected Map<String, String> getParams() { 
      Map<String, String> params = new HashMap<String, String>(); 
       params.put("macId", macValue); 
      return params; 
     } 
     @Override 
     public String getBodyContentType() { 
      return "application/json"; 
     } 

    }; 

    // Adding request to request queue 
    AppController.getInstance().addToRequestQueue(postRequest); 
} 

注:请提供代码片段

+0

您可以在'getParamas()'方法中设置标头。 –

+0

您可以通过超越控制getHeaders http://stackoverflow.com/a/17445275/1842454 –

回答

0

覆盖下面的方法解答:

public String getBodyContentType() { 
     return "application/json; charset=utf-8"; 
    } 

,并覆盖getHeaders以及与传递什么:

@Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 
     HashMap<String, String> headers = new HashMap<String, String>(); 
     return headers; 
    } 

它会工作。

+0

这种尝试的内容类型与应用/ JSON ..不工作! – Abiranjan

+0

更新尝试了上述解决方案,以及 – Anjali

+0

仍然没有工作综合外电! – Abiranjan