okhttp的post用法

来源:互联网 发布:美国知乎quora 中国 编辑:程序博客网 时间:2024/05/01 05:29

上传键值对步骤:

1向FormBody 中放入键值对

2获取requestBody对象

3获取request对象将requestBody放入request中

4获取response对象

5获取responseBody对象

6从responseBody中获取服务端返回的对象

上传json数据 步骤:

1向MediaType 中放入数据

2获取requestBody对象

3获取request对象将requestBody放入request中

4获取response对象

5获取responseBody对象

6从responseBody中获取服务端返回的对象


上传文件步骤:

1向MultipartBuilder中写入上传文件及表单头信息

2构建requestbody请求体

3获取request对象将requestBody放入request中

4获取response对象

5获取responseBody对象

6从responseBody中获取服务端返回的对象






以键值对为例:

//同步    private static String postRequestBody(String url, RequestBody requestBody) throws IOException {        Request request = buildPostRequest(url, requestBody);        Response response = okhttpclient.newCall(request).execute();        if (response.isSuccessful()) {            return response.body().string();        }        return null;    }    private static RequestBody buildRequestBody(String key, String str) {        FormBody.Builder builder = new FormBody.Builder();        builder.add(key, str);        return builder.build();    }    /**     * post访问提交键值对     * @param url     * @param key     * @param str     * @return     * @throws IOException     */    public  static String postKeyValuePair(String url, String key, String str) throws IOException {        RequestBody requestBody = buildRequestBody(key, str);        return postRequestBody(url, requestBody);    }//post异步    private static void postRequestBodyAsnc(String url,RequestBody requestBody,Callback callback){        Request request = buildPostRequest(url, requestBody);        okhttpclient.newCall(request).enqueue(callback);    }    public static void postKeyValuePairAsync(String url,String key,String str,Callback callback){        RequestBody requestBody=buildRequestBody(key,str);        postRequestBodyAsnc(url,requestBody,callback);    }





0 0
原创粉丝点击