Android okhttp post提交数据的三种方式
2023-09-14 09:04:23 时间
如果是key value的json数据用以下三种都可以,如果有对象类型的数据,建议使用方法一map
方法一:Map 通过 GSON 转为 JSON
try {
Map<String,String> priceMap = new HashMap<>();
priceMap.put("page","1");
priceMap.put("word","西红柿炒鸡蛋");
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
RequestBody requestBody = FormBody.create(mediaType, gson.toJson(priceMap));
Log.d(TAG,gson.toJson(priceMap));
Request.Builder builder = new Request.Builder().url(url);
builder.post(requestBody).build();
Call call = client.newCall(builder.build());
Response resp = call.execute();
if (resp.isSuccessful()) {
String response = resp.body().string();
Log.d(TAG,"返回="+response);
}
} catch (Exception e) {
e.printStackTrace();
}
方法二:表单 form-data
try {
MultipartBody.Builder bodyBuilder = new MultipartBody
.Builder()
.setType(MultipartBody.FORM);
bodyBuilder.addFormDataPart("word", "西红柿炒鸡蛋");
Request.Builder builder = new Request.Builder().url(url);
builder.post(bodyBuilder.build());
Call call = client.newCall(builder.build());
Response resp = call.execute();
if (resp.isSuccessful()) {
String response = resp.body().string();
Log.d(TAG,"返回="+response);
}
} catch (Exception e) {
e.printStackTrace();
}
方法三:JSONObject
try {
JSONObject eqcjson = new JSONObject();
eqcjson.put("word", "西红柿炒鸡蛋");
eqcjson.put("page", "1");
Log.d(TAG,eqcjson.toString());
RequestBody bodyBuilder = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), eqcjson.toString());
Request.Builder builder = new Request.Builder().url(url);
builder.post(bodyBuilder).build();
Call call = client.newCall(builder.build());
Response resp = call.execute();
if (resp.isSuccessful()) {
String response = resp.body().string();
Log.d(TAG,"返回="+response);
}
} catch (Exception e) {
e.printStackTrace();
}
相关文章
- 使用青花瓷对Android app 抓包
- android开机动画多长时间_Android开机动画原理分析
- android activity自动跳转,Android activity跳转之finish()方法的作用
- [AI安全论文] 20.RAID19 基于Android移动设备的互联网流量中的位置数据泄漏分析(译文)
- xps 转 pdf android版,xps文件转换pdf
- android app 退出功能,Android 完美退出 App (Exit)
- android 验证码短信验证码,Android短信验证码倒计时验证的2种常用方式
- android telephony 原理解析与开发指南_Android逆向pdf
- android toast全屏,Android Toast实现全屏显示
- Android n_android 反编译
- Android平台RTSP、RTMP播放端如何实现YUV或ARGB数据按设定角度旋转
- Android 数据库加密 android-database-sqlcipher 开源版本编译过程
- 搭建IOS和Android性能监控工具
- 亚马逊销售的 Android 电视盒,正在悄悄窃取你的数据
- Android studio更新后出现警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has
- 【软件开发规范七】《Android UI设计规范》
- 【Android NDK 开发】Ubuntu 函数库交叉编译 ( Android 动态库交叉编译 | Android 静态库交叉编译 )
- 【Android RTMP】x264 图像数据编码 ( NV21 格式中的 YUV 数据排列 | Y 灰度数据拷贝 | U 色彩值数据拷贝 | V 饱和度数据拷贝 | 图像编码操作 )
- 【Android 逆向】Android 逆向通用工具开发 ( 网络模块开发 | SOCKET 网络套接字初始化 | 读取远程端 “Android 模拟器“ 信息 | 向远程端写出数据 )
- 【Android 屏幕适配】屏幕适配通用解决方案 ③ ( 自定义组件解决方案 | 获取设备状态栏高度 | 获取设备屏幕数据 )
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- Android控制摄像头拍照并对照片进行裁剪详解手机开发
- android Universal Image Loader for Android 说明文档 (1)详解手机开发
- Android中的ProgressBar的android:indeterminate详解手机开发
- android安装应用程序工具类详解编程语言
- 诺基亚1.3目前正在接受Android 11的更新
- Android实现PHP连接MySQL进行数据交互(android通过php连接mysql)
- Connecting Android to Oracle: The Ultimate Guide for Seamless Integration.(android连接oracle)
- 解析Android中如何做到Service被关闭后又自动启动的实现方法
- Android动态添加View的问题解决方法
- android网络编程之网络通信几种方式实例分享
- android开发教程之清除android数据缓存示例(清除本地数据缓存)
- Android中删除Preference详解
- Android实用的代码片段常用代码总结