okhttp post用json传递参数

Posted 办法总比问题多

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了okhttp post用json传递参数相关的知识,希望对你有一定的参考价值。

//请求显示数据
    private void getdata() {
        //开启线程来发起网络请求
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
添加一个json格式数据
                    MediaType JSON = MediaType.parse("application/json; charset=utf-8");
                    JSONObject json = new JSONObject();
                    try {
                        json.put("serialNumber", serialNumber);
                        json.put("pageNum", pageNum);
                        json.put("pageSize", pageSize);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    //1 . 拿到OkHttpClient对象
                    OkHttpClient client = new OkHttpClient();
                    //创建一个RequestBody(参数1:数据类型 参数2传递的json串)
                    RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
                    //3 . 构建Request,将FormBody作为Post方法的参数传入
                    Request request = new Request.Builder()
                            .url("http://172.28.60.97:8200/ZYGameServer_v2/app/v2/getChatInfoByPage")
                            .post(requestBody)
                            .build();

                    Response response = client.newCall(request).execute();
                    String responseData = response.body().string();
                    getfeedback(responseData);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            //一个JSON对象——JSONObject{}
            //一个JSON数组——JSONArray[]
            private void getfeedback(String responseData) {
                try {
                    JSONObject jsonObject1 = new JSONObject(responseData);
                    JSONArray jsonArray = jsonObject1.getJSONArray("data");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        //消息内容
                        String message = jsonObject.getString("message");
                        //消息类型(0:文本;1:图片;;2:系统)
                        String type = jsonObject.getString("type");
                        //0:未读;1:已读
                        String read = jsonObject.getString("read");
                        //消息来源(0:用户;1:平台)
                        String source = jsonObject.getString("source");
                        // 创建时间
                        long createTime = jsonObject.getLong("createTime");
                        myFeedbackDetailsModel.add(new MyFeedbackDetailsModel(message, type, read, source, createTime,null,null,null));
                    }
                    send_message = Message.obtain();
                    send_message.what = 100;
                    handler.sendMessage(send_message);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

  

以上是关于okhttp post用json传递参数的主要内容,如果未能解决你的问题,请参考以下文章

okhttp 请求成功后怎么的返回数据

如何使用 OKHTTP 发出 post 请求?

Android进阶:5发送post请求json数据格式以及okhttp框架的使用

什么步骤可以用post向网络传递多个参数

struts2怎样获取AJAX post请求传递的数据

Android:OkHttp的理解和使用