OkHttp使用post请求注意点
2016-03-28 19:52
591 查看
简单谈谈个人在使用OkHttp过程中发现的注意点:
1.提交键值对
主要使用FormEncodingBuilder来添加参数值、post url即可
1.提交键值对
OkHttpClient client = new OkHttpClient(); String post(String url, String json) throws IOException { RequestBody formBody = new FormEncodingBuilder() .add("platform", "android") .add("name", "bug") .add("subject", "XXXXXXXXXXXXXXX") .build(); 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); } }
主要使用FormEncodingBuilder来添加参数值、post url即可
2.上传文件
此处以上传图片为例
protected RequestBody postBody(File file) { // 设置请求体 MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png"); RequestBody body = MultipartBody.create(MEDIA_TYPE_PNG, file); MultipartBody.Builder builder = new MultipartBody.Builder(); builder.setType(MultipartBody.FORM); //这里是 封装上传图片参数 builder.addFormDataPart("file", file.getName(), body); // 封装请求参数,这里最重要 HashMap<String, String> params = new HashMap<>(); params.put("client","Android"); params.put("uid","1061"); params.put("token","1911173227afe098143caf4d315a436d"); params.put("uuid","A000005566DA77"); //参数以添加header方式将参数封装,否则上传参数为空 if (params != null && !params.isEmpty()) { for (String key : params.keySet()) { builder.addPart(Headers.of("Content-Disposition", "form-data; name=\"" + key + "\""), RequestBody.create(null, params.get(key))); } } return builder.build();
相关文章推荐
- OkHttp的Interceptor原理分析
- http缓存
- android通过okhttp访问自签名https网站(单向)
- OkHttp和Okio
- 关于OKHTTP与图片缓存的使用
- Servlet和Android网络交互基础(1)
- 解决找不到okio.buffer.writeUTF8CodePoint 的方法
- OkHttp获取request请求进度
- OkHttp缓存功能的应用
- [CAQ5]使用okhttp等三方网络框架的时候出现超时错误
- Android6.0新特性----OKHttp请求
- Android笔记--Android Studio 引用第三方开源类okhttp、gson库时的打包混淆
- OkHttp资料推荐 和 下载进度监听开源
- okHttp的封装
- OkHttp使用介绍
- Android 基于OkHttp的UI层回调封装
- Android 使用OkHttp扩展Volley
- 开源项目OkHttpPlus——支持GET、POST、UI线程回调、JSON格式解析、链式调用、文件上传下载
- OkHttp是怎么工作的 - 从介绍到分析
- OKHttp(2)——源码解析