java Android Volley 将 json 数据发布到服务器

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/44732699/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 08:19:03  来源:igfitidea点击:

Android Volley post json data to server

javaandroidjsonwebserverandroid-volley

提问by alien

I am new in Java. I want to send post json data to webserver. My Volley post is given below.

我是 Java 新手。我想将 post json 数据发送到网络服务器。下面给出了我的 Volley 帖子。

public void postData(String url,JSONObject data,final VolleyCallback mResultCallback){
    RequestQueue requstQueue = Volley.newRequestQueue(mContext);

    JsonObjectRequest jsonobj = new JsonObjectRequest(Request.Method.POST, url,null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    if(mResultCallback != null){
                        mResultCallback.notifySuccess(response);
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    if(mResultCallback != null){
                        mResultCallback.notifyError(error);
                    }
                }
            }
    ){
      //here I want to post data to sever
    };
    requstQueue.add(jsonobj);

}

Here is my MainActivity code

这是我的 MainActivity 代码

JSONObject data = null;
            try {
                String datas = "{'email': email,'password': password}";
                data = new JSONObject(datas);
            }catch (JSONException e){
                e.printStackTrace();
            }
String url = "http://example.com";

I want to post JSON data to my PostData method. How can I post this json data to my server?

我想将 JSON 数据发布到我的 PostData 方法。如何将此 json 数据发布到我的服务器?

回答by Ranjan

    public void postData(String url,Hashmap data,final VolleyCallback mResultCallback){
        RequestQueue requstQueue = Volley.newRequestQueue(mContext);

        JsonObjectRequest jsonobj = new JsonObjectRequest(Request.Method.POST, url,new JSONObject(data),
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        if(mResultCallback != null){
                            mResultCallback.notifySuccess(response);
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        if(mResultCallback != null){
                            mResultCallback.notifyError(error);
                        }
                    }
                }
        ){
          //here I want to post data to sever
        };
        requstQueue.add(jsonobj);

    }

Now, from your mainActiviy class

现在,从你的 mainActiviy 类

    Hashmap data = new HashMap();
    data.put("email","email");
    data.put("password","password");      
    String url = "http://example.com";

//now you can just call the method, I have rectified your string to hashmap,
postData(url,data,new mResultCallb.....              //rest of your code

回答by Alien

public void postData(String url,JSONObject data,final VolleyCallback mResultCallback){
RequestQueue requestQueue = Volley.newRequestQueue(mContext);

JsonObjectRequest jsonobj = new JsonObjectRequest(Request.Method.POST, url,data,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                if(mResultCallback != null){
                    mResultCallback.notifySuccess(response);
                }
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if(mResultCallback != null){
                    mResultCallback.notifyError(error);
                }
            }
        }
);
requstQueue.add(jsonobj);

}

回答by Mayur Sojitra

public void postData(String url,final JSONObject data,final VolleyCallback mResultCallback){
    RequestQueue requstQueue = Volley.newRequestQueue(mContext);

    JsonObjectRequest jsonobj = new JsonObjectRequest(Request.Method.POST, url,null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    if(mResultCallback != null){
                        mResultCallback.notifySuccess(response);
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    if(mResultCallback != null){
                        mResultCallback.notifyError(error);
                    }
                }
            }
    ){
       @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                if(data != null){
                    Iterator<String> keysItr = data.keys();
                    while(keysItr.hasNext()) {
                            String key = keysItr.next();
                            Object value = data.get(key);

                            if(value instanceof JSONArray) {
                                value = toList((JSONArray) value);
                            }

                            else if(value instanceof JSONObject) {
                                value = toMap((JSONObject) value);
                            }
                            params.put(key, value);
                        }
                } 
                return params;
            }
    };
    requstQueue.add(jsonobj);

this is working code for me

这是我的工作代码

Hope this might be work for you..

希望这可能对你有用..

Happy Codding

快乐编码