美文网首页NetAndroid
android 中okhttp 传递json数据

android 中okhttp 传递json数据

作者: tea9 | 来源:发表于2016-11-25 17:20 被阅读4184次

    参考地址 http://blog.csdn.net/lmj623565791/article/details/47911083
    client 基础配置

    public final static int CONNECT_TIMEOUT = 60;
    public final static int READ_TIMEOUT = 100;
    public final static int WRITE_TIMEOUT = 60;
    public static final OkHttpClient client = new OkHttpClient.Builder()
            .readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)//设置读取超时时间
            .writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)//设置写的超时时间
            .connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)//设置连接超时时间
            .build();
    

    get方法
    参数:
    url get请求地址

        public String get(String url) throws IOException {
        Request request = new Request.Builder().url(url).get().build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            return response.body().string();
        } else {
            throw new IOException("Unexpected code " + response);
        }
    }
    

    post方法
    参数:
    url post请求地址
    json json字符串

    public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
    
    public static String post(String url, String json) throws IOException {
        RequestBody body = RequestBody.create(JSON, json);
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            return response.body().string();
        } else {
            throw new IOException("Unexpected code " + response);
        }
    }
    

    调用:

    new Thread() {
        @Override
        public void run() {
            //传的json
            JSONObject jsonObject = new JSONObject();
            try {
                String callStr = OKHttpTool.post(HttpUrl.API_ACTIVE, jsonObject.toString());
                JSONObject call_json = new JSONObject(callStr);
                final String msg = call_json.getString("msg");
                if (call_json.getInt("status") == 1){
                    //在子线程中调用ui线程
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(ActivationCardActivity.this, msg, Toast.LENGTH_SHORT).show();
                            finish();
                        }
                    });
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
    }.start();

    相关文章

      网友评论

      • 㷣㷣:传json的时候 可以设置参数吗? 还有上传json的时候 不能添加其他的参数吗?

      本文标题:android 中okhttp 传递json数据

      本文链接:https://www.haomeiwen.com/subject/kdkwpttx.html