GVKun编程网logo

JSON对象的Volley Post方法(json对象常用方法)

18

想了解JSON对象的VolleyPost方法的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于json对象常用方法的相关问题,此外,我们还将为您介绍关于AndroidKotlin-Volley

想了解JSON对象的Volley Post方法的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于json对象常用方法的相关问题,此外,我们还将为您介绍关于Android Kotlin - Volley Multipart 请求 VolleyFileUploadRequest JSONObject 响应、Android Volley POST JsonObject并获取JsonArray或JsonObject或其他响应、Android Volley Post Request – JsonArrayRequest的解决方法、Android Volley多维JSON请求post方法的新知识。

本文目录一览:

JSON对象的Volley Post方法(json对象常用方法)

JSON对象的Volley Post方法(json对象常用方法)

data={    "request": {       "type": "event_and_offer",       "devicetype": "A"    },    "requestinfo": {       "value": "offer"      }}

如何从排球plz帮助发布此请求

            JsonObjectRequest jsonObjReq = new JsonObjectRequest(            Request.Method.POST,url, null   ,            new Response.Listener<JSONObject>() {                @Override                public void onResponse(JSONObject response) {                    Log.d(TAG, response.toString());                    msgResponse.setText(response.toString());                    hideProgressDialog();                }            }, new Response.ErrorListener() {                @Override                public void onErrorResponse(VolleyError error) {                    VolleyLog.d(TAG, "Error: " + error.getMessage());                    hideProgressDialog();                }            }) {        /**         * Passing some request headers         * */        @Override        public Map<String, String> getHeaders() throws AuthFailureError {            HashMap<String, String> headers = new HashMap<String, String>();            headers.put("Content-Type", "application/x-www-form-urlencoded");            return headers;        }

js引用了我的jsson对象……我使我的jsson像这样.....

JSONObject jsonobject_one = new JSONObject();    try {        jsonobject_one.put("type", "event_and_offer");        jsonobject_one.put("devicetype", "I");        JSONObject jsonobject_TWO = new JSONObject();        jsonobject_TWO.put("value", "event");        jsonobject = new JSONObject();        jsonobject.put("requestinfo", jsonobject_TWO);        jsonobject.put("request", jsonobject_one);        js = new JSONObject();        js.put("data", jsonobject.toString());        Log.e("created jsson", "" + js);

但是它没有响应值请怎么做

答案1

小编典典

首先你的json数据:

JSONObject js = new JSONObject();try {    JSONObject jsonobject_one = new JSONObject();    jsonobject_one.put("type", "event_and_offer");    jsonobject_one.put("devicetype", "I");    JSONObject jsonobject_TWO = new JSONObject();    jsonobject_TWO.put("value", "event");    JSONObject jsonobject = new JSONObject();    jsonobject.put("requestinfo", jsonobject_TWO);    jsonobject.put("request", jsonobject_one);    js.put("data", jsonobject.toString());}catch (JSONException e) {        e.printStackTrace();}

然后您的json请求:

JsonObjectRequest jsonObjReq = new JsonObjectRequest(        Request.Method.POST,url, js,        new Response.Listener<JSONObject>() {            @Override            public void onResponse(JSONObject response) {                Log.d(TAG, response.toString());                msgResponse.setText(response.toString());                hideProgressDialog();            }        }, new Response.ErrorListener() {            @Override            public void onErrorResponse(VolleyError error) {                VolleyLog.d(TAG, "Error: " + error.getMessage());                hideProgressDialog();            }        }) {    /**     * Passing some request headers     * */    @Override    public Map<String, String> getHeaders() throws AuthFailureError {         HashMap<String, String> headers = new HashMap<String, String>();         headers.put("Content-Type", "application/json; charset=utf-8");        return headers;    }

注意 标题

如果您想在localhost中进行测试,请使用以下代码并设置您的url以连接您的localhost服务器和ip地址:下面的代码将您的所有请求都放在一个文本文件中,我尝试了一下,即可

<?phpfile_put_contents(''test.txt'', file_get_contents(''php://input''));?>

Android Kotlin - Volley Multipart 请求 VolleyFileUploadRequest JSONObject 响应

Android Kotlin - Volley Multipart 请求 VolleyFileUploadRequest JSONObject 响应

这是怎么做的:

val response = JSONObject(String(it.data))

Android Volley POST JsonObject并获取JsonArray或JsonObject或其他响应

Android Volley POST JsonObject并获取JsonArray或JsonObject或其他响应

在齐射中,我们具有从服务器检索数据的能力,例如jsonObject,jsonArray和String.在以下示例中,我们可以从服务器获取jsonObject或jsonArray响应,

public static void POST(HashMap<String, String> params, final Listeners.ServerResponseListener listener) {
    JsonObjectRequest req1 = new JsonObjectRequest(ApplicationController.URL, new JSONObject(params),
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    Log.e("Response:", response.toString());
                    if (listener != null)
                        listener.onResultJsonObject(response);
                    else
                        Log.e(TAG,"Error: SetServerResponse interface not set");
                }
            }, new Response.ErrorListener() {
        @Override
        public void one rrorResponse(VolleyError error) {
            Log.e("Error: ", error.getMessage());
        }
    });
    ApplicationController.getInstance().addToRequestQueue(req1);
}

我的问题是我想从此方法发送jsonObject并从服务器获取jsonArray或jsonObject,而我无法使用此方法简单地从服务器获取数组.例如,我必须对此jsonObject进行过滤服务器响应:

HashMap<String, String> params = new HashMap<String, String>();
params.put("token", "AbCdEfGh123456");
params.put("search_count", "10");
params.put("order_by", "id");

服务器返回jsonArray并且我无法通过Volley响应得到它

解决方法:

查看JsonArrayRequest的源代码.有一个构造函数,它接收JSONObject.你应该检查一下

Android Volley Post Request – JsonArrayRequest的解决方法

Android Volley Post Request – JsonArrayRequest的解决方法

我知道使用JsonArrayRequest的POST请求不能与Volley一起开箱即用,但我看到这篇文章here讨论了添加一个构造函数来处理这个问题.他们的实施是这样的:

public JsonArrayRequest(int method, String url, JSONObject jsonRequest,
        Listener<JSONArray> listener, ErrorListener errorListener) {
    super(method, url, (jsonRequest == null) ? null : jsonRequest.toString(), 
        listener, errorListener);
}

我如何将其添加为构造函数?上述问题提到将其放入Volley工具库中.我将Volley导入为.jar,所以我不确定如何添加这样的构造函数,或者这是否是最好的方法.任何帮助深表感谢.

编辑

我已按照建议使用override和constructor创建了以下类.这是班级:

public class PostJsonArrayRequest extends JsonArrayRequest {

    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("name", "value");
        return params;
    }

    public PostJsonArrayRequest(int method, String url, JSONObject jsonRequest,
            Listener<JSONArray> listener, ErrorListener errorListener) {
        super(Method.POST, url, null, listener, errorListener);
    }
}

在线上调用super我正在获取构造函数JsonArrayRequest(int,String,null,Response.Listener< JSONArray>,Response.ErrorListener)是未定义的

我该如何纠正?

解决方法:

创建一个类并扩展JsonArrayRequest然后覆盖

@Override
protected Map<String, String> getParams() throws AuthFailureError {
    HashMap<String, String> params = new HashMap<String, String>();
    params.put("name", "value");
    return params;
}

并添加一个新的构造函数并在其中调用

super(Method.POST, url, null, listener, errorListener);

或者使用这个课程

public class PostJsonArrayRequest extends JsonRequest<JSONArray> {

    /**
     * Creates a new request.
     * @param url URL to fetch the JSON from
     * @param listener Listener to receive the JSON response
     * @param errorListener Error listener, or null to ignore errors.
     */
    public PostJsonArrayRequest(String url, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener) {
        super(Method.POST, url, null, listener, errorListener);
    }

    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("name", "value");
        return params;
    }

    @Override
    protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) {
        try {
            String jsonString =
                    new String(response.data, HttpHeaderParser.parseCharset(response.headers));
            return Response.success(new JSONArray(jsonString),
                    HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        } catch (JSONException je) {
            return Response.error(new ParseError(je));
        }
    }
}

Android Volley多维JSON请求post方法

Android Volley多维JSON请求post方法

如何解决Android Volley多维JSON请求post方法?

如何使用 volley post 方法发送多维数组。

    {
  "code": "001","Emp_id": "0000","Exp_Dt": "2021-05-27T00:00:00.000","users": [
        {
                "id": "1087","name": "Abhishek Saini","email": "info@ezacake.com","gender" : "male"
        },{
                "id": "1088","name": "Gourav","email": "gourav9188@gmail.com","gender" : "male"
                
        }
  ]
}

这个格式我要调用API。请帮忙 注意 - 我想在我的 API 上使用数组请求,而不是响应

解决方法

嗨,你正试图在那里发送一个 json 对象 =>

创建父 json 对象

JSONObject reqJO = new JSONObject();

输入其他属性,例如

reqJo.put("code",0001);

创建一个用户json对象

JSONObject user = new JSONObject();

放置用户属性(如果更多用户循环创建新用户)例如

user.put("id",1087)

创建一个用户的json数组

JSONArray users = new JSONArray();

在用户数组中添加用户

users.put(user);

将用户数组放入父对象

reqJO.put("users",users);

然后你继续你的JsonObjectRequest

,

答案在这里

RequestQueue queue = Volley.newRequestQueue(this);
JsonObjectRequest jobReq = new JsonObjectRequest(Request.Method.POST,url,jObject,new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {

            }
        },new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {

            }
        });

queue.add(jobReq);

关于JSON对象的Volley Post方法json对象常用方法的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android Kotlin - Volley Multipart 请求 VolleyFileUploadRequest JSONObject 响应、Android Volley POST JsonObject并获取JsonArray或JsonObject或其他响应、Android Volley Post Request – JsonArrayRequest的解决方法、Android Volley多维JSON请求post方法等相关内容,可以在本站寻找。

本文标签: