2015-06-01 54 views
0

作爲old versionvolley.jar。我通過params通過以下方法:凌空如何解析參數JsonObjectRequest getParams不起作用

@Override 
public byte[] getBody() { 
    if (params != null && params.size() > 0) { 
     return encodeParameters(params, getParamsEncoding()); 
    } 
    return null; 
}     

但我需要更新抽射,發現這種方法(encodeParameters())變更爲私有。

我還發現重寫getParams()的方法,這對我不起作用。的JsonObjectRequest方法getBody是如下:

public byte[] getBody() { 
    try { 
     return mRequestBody == null ? null : mRequestBody.getBytes(PROTOCOL_CHARSET); 
    } catch (UnsupportedEncodingException uee) { 
     VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", 
      mRequestBody, PROTOCOL_CHARSET); 
     return null; 
    } 
} 

getParams()永遠不會被調用。所以我現在無法通過params

我也嘗試通過構造方法params它有參數JsonObject,但它也沒有工作。

回答

0

希望我正確理解你。

通過與凌空PARAMS一個更簡單的方法是:

String url = "some/url"; 

    Map<String, Object> jsonParams = new HashMap<>(); 
    jsonParams.put("someparam", getSomeParamObject()); 

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, new JSONObject(jsonParams), 
      new Response.Listener<JSONObject>() 
      { 
       @Override 
       public void onResponse(JSONObject response) 
       { 
       //do your magic... 
       } 
      } 

的編碼問題,看是否能幫助SO Question

希望這有助於。