okhttp提交请求body,json或者图片的方式
来源:互联网 发布:mac屏幕下方白条 编辑:程序博客网 时间:2024/06/08 16:56
最近的后台接口要求:
1、post请求,带参数,请求body提交json。
2、post请求提交图片,带参数,表单形式提交图片。
与常规请求参数要求不同,记录一下。
原理:将post参数拼接到url中,json或者表单在添加的时候注明头文件。
0、
public static OkHttpClient sOkHttpClient = new OkHttpClient.Builder() .addInterceptor(new Interceptor() { public Response intercept(Chain chain) throws IOException { Request request = chain.request(); Response response = chain.proceed(request); return response; } }) .connectTimeout(4000, TimeUnit.MILLISECONDS) .readTimeout(4000, TimeUnit.MILLISECONDS) .writeTimeout(4000, TimeUnit.MILLISECONDS) .build();
1、
/** * 适用于需要传参数和json对象的接口 * Post 异步请求 * * @param apiId * @param map 参数 * @param jsonString json字符串 * @param callback 异步回调 */public static void asyPostJson(String apiId, Map<String, String> map, String jsonString, Callback callback) { if (TextUtils.isEmpty(jsonString)) { return; } MediaType JSON = MediaType.parse("application/json; charset=utf-8"); RequestBody requestBody = RequestBody.create(JSON, jsonString); Log.e("======>>", apiId + " 请求json:" + jsonString); String url = apiId +"?"; if (map != null) { // map 里面是请求中所需要的 key 和 value Set<Map.Entry<String, String>> entries = map.entrySet(); for (Map.Entry entry : entries) { String key = valueOf(entry.getKey()); String value = valueOf(entry.getValue()); url = url + "&" + key + "=" + value; } } Log.e("", "============URL============" + apiId + ":" + url); Request request = new Request.Builder() .url(url) .post(requestBody) .build(); sOkHttpClient.newCall(request).enqueue(callback);}
2、
/** * 单图上传方法,供参考 * 已测试A3033P094与A3033P105接口 * * @param map 参数类似apikey * @param file 图片文件 * @param imagekey 图片key,一般为"image" * @param callback * @ param url */public static void postFile(final String apiId, final Map<String, String> map, File file, String imagekey, Callback callback) { MultipartBody.Builder requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM); if (file != null) { RequestBody body = RequestBody.create(MediaType.parse("multipart-formdata"), file); String filename = file.getName(); // 参数分别为, 请求key ,文件名称 , RequestBody requestBody.addFormDataPart(imagekey, filename, body); } String url = apiId + "?"; if (map != null) { // map 里面是请求中所需要的 key 和 value Set<Map.Entry<String, String>> entries = map.entrySet(); for (Map.Entry entry : entries) { String key = valueOf(entry.getKey()); String value = valueOf(entry.getValue()); // requestBody.addFormDataPart(key, value); url = url + "&" + key + "=" + value; } } Log.e("==========URL==========", "" + apiId + ":" + url); Request request = new Request.Builder().url(url).post(requestBody.build()).build(); sOkHttpClient.newCall(request).enqueue(callback);}
阅读全文
0 0
- okhttp提交请求body,json或者图片的方式
- okhttp发送post(json)请求数据,出现不走response.body().string(),单起一行打印的异常
- gin 获取post请求的json body
- Android Volley框架的几种post提交请求方式(xml->xml json->json xml->json)
- OKHttp的使用GET和POS 请求方式,处理json数据
- Okhttp网络请求post方式 加Json解析
- OkHttp请求json数据
- okhttp请求json数据
- OkHttp的GET请求的实现方式
- OkHttp的POST、GET请求方式
- OkHttp Post请求方式
- 获得WebAPI原始POST请求BODY的JSON内容
- struts2/jsp 通过form表单方式或者js的方式提交请求,封装boolean值的问题
- OkHttp的封装(参数全部使用Json提交)
- spring-mvc 请求body 的处理方式 HttpMessageConverter
- LR提交JSON格式的请求
- OkHttp请求回调中response.body().string()只能有效调用一次
- OkHttp请求回调中response.body().string()如何调用两次
- Haproxy 简介
- Caffe自带工具使用记录
- Python学习(7)--if语句
- 顺序栈的输入与输出
- 图像拼接---图片柱面投影简单实现
- okhttp提交请求body,json或者图片的方式
- 关于dhcp服务你必须知道的几点
- JAVA问题之jre和jdk
- 行变色
- 解析机器学习中的几种常见聚类算法
- 通过launch文件中参数设置先锋移动速度
- 认识HTML标签
- 面向对象程序设计第一周编程题(翁恺老师)
- js获取手机屏幕宽度