上传键值对步骤:
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); }