我想使用volley库发布boolean,double数据。我没有得到如何使用它。还有其他任何进程。谢谢。
这是我的方法......
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", "name");
params.put("email", "abc@abc.info");
params.put("pass", "password");
return params;
}
答案 0 :(得分:5)
JSONObject obj = new JSONObject();
obj.put("isboolean",false)
JsonObjectRequest req = new JsonObjectRequest(Constants.URL_PATH, obj,
new Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}, new ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
答案 1 :(得分:2)
JSONObject object = new JSONObject();
try {
object.put("compression", false);
object.put("instructions", true);
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, API_URL, object, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
parseDirectionsData(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> params = new HashMap<>();
params.put("loc", "-33.9717974,18.6029783");
return params;
}
};
任何不是字符串的参数都可以将它们包装到Json对象中。
答案 2 :(得分:0)
如果您有自定义请求,则可以覆盖getBody方法并转到城镇:
@Override
public byte[] getBody(){
JSONObject jsonObject = new JSONObject();
String body = null;
try{
//Here are your parameters:
jsonObject.put("name", "geronimous");
jsonObject.put("age", 998);
jsonObject.put("happy", true);
body = jsonObject.toString();
} catch (JSONException e){
e.printStackTrace();
}
try{
return body.toString().getBytes("utf-8");
} catch (UnsupportedEncodingException e){
e.printStackTrace();
}
return null;
}
确保在标题
上将内容类型设置为application / json答案 3 :(得分:0)
以下是排球比赛的完整请求。 您可以更改方法调用。 您可以将任何类型的参数作为JSON对象传递 您可以设置请求标头
JSONObject jsonObject = new JSONObject();
jsonObject.put("stringValue", "abc");
jsonObject.put("doubleValue", 13.066);
jsonObject.put("integerValue", 120);
jsonObject.put("booleanValue", true);
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, getString(R.string.api_url), jsonObject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
getJsonResult(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
) {
@Override //Send Header
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("api_call_header", "header_value");
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(request);`enter code here`