作为old version
的{{1}}。我通过以下方法传递volley.jar
:
params
但我需要更新凌空,并发现此方法(encodeParameters())已更改为私有。
我还发现要覆盖@Override
public byte[] getBody() {
if (params != null && params.size() > 0) {
return encodeParameters(params, getParamsEncoding());
}
return null;
}
的方法,这对我来说不起作用。 getParams()
的方法getBody
如下:
JsonObjectRequest
永远不会打电话给{p> 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
param的构造方法中传递params
,但它也不起作用。
答案 0 :(得分: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是否有帮助。
希望这有助于。