使用OkHttp 上传图片一定要使用 post 请求方式 这里使用的是异步的post 请求方式 还是用了HttpLoggingInterceptor 日志监听
权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

导入的依赖

implementation 'com.squareup.okhttp3:okhttp:3.12.0'/*这是使用okhttp 的依赖*/
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.0'/*这是添加日志监听的依赖*/

具体代码

public class OkUtils {private OkHttpClient okHttpClient;public OkUtils() {HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();okHttpClient = new OkHttpClient.Builder().connectTimeout(20,TimeUnit.SECONDS).readTimeout(20,TimeUnit.SECONDS).callTimeout(20,TimeUnit.SECONDS).addInterceptor(loggingInterceptor).build();}public static OkUtils getInstance(){return OkHolder.okUtils;}static class OkHolder{private static final OkUtils okUtils = new OkUtils();}public void upLoadImage(String murl,String uid,Callback callback){File file = new File(Environment.getExternalStorageDirectory()+"/DCIM/zuiyou/414606767.jpg");// 后面的是要上传图片的地址MultipartBody.Builder body = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("uid",uid).addFormDataPart("name","jacke121").addFormDataPart("img","414606767.jpg",RequestBody.create(MediaType.parse("image/jpg"),file));
body.addFormDataPart("value","jacke121");RequestBody body1 = body.build();Request request = new Request.Builder().url(murl).post(body1).build();okHttpClient.newCall(request).enqueue(callback);}
}

Mainactivity 中的代码

OkUtils.getInstance().upLoadImage(mUrl, uid, new Callback() {@Overridepublic void onFailure(Call call, IOException e) {Log.e("onFailure",e.getMessage()+"");//强制在主线程中刷新,不推荐使用,太消耗内存runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();}});}@Overridepublic void onResponse(Call call, Response response) throws IOException {Log.e("onResponse",response.body().string()+"");runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();}});}});

感谢:https://blog.csdn.net/weixin_43564787/article/details/84955176

android OkHttp form 上传图片和参数相关推荐

  1. android okhttp get 请求带参数

    /** * 为HttpGet 的 url 方便的添加多个name value 参数. * @param url * @param params * @return */ public static S ...

  2. Android okHttp上传图片

    今天,简单讲讲Android 使用OK HTTP上传图片. 不废话了,直接上代码: /*** 上传图片* @param url* @param imagePath 图片路径* @return 新图片的 ...

  3. android http 图片上传,Android okHttp上传图片

    今天,简单讲讲Android 使用OK HTTP上传图片. 不废话了,直接上代码:/** * 上传图片 * @param url * @param imagePath 图片路径 * @return 新 ...

  4. android OKHttp的基本使用详解

    今天,简单讲讲Android里如何使用OKHttp. Android框架系列: 一.android EventBus的简单使用 二.android Glide简单使用 三.android OKHttp ...

  5. Android OkHttp完全解析 是时候来了解OkHttp了

    Android OkHttp完全解析 是时候来了解OkHttp了 标签: AndroidOkHttp 2015-08-24 15:36 316254人阅读 评论(306) 收藏 举报  分类: [an ...

  6. android okhttp使用cookie请求

    今天,简单讲讲Android的http使用cookie请求. 现在,做一个功能,出现一个奇怪现象,就是老是登陆成功后,发送请求获取消息,老是提示我没有登陆.我自己都不知道是什么原因,这个也是我对网络通 ...

  7. Android OkHttp经验小结

    OkHttp应该是目前最完善,也是相当流行的一个底层网络请求库.Google都在用,所以有必要深入了解一下,刚好最近在重构公司项目的网络层,就顺便梳理一下. ---–12.29---- 最近暂时没有时 ...

  8. Android OkHttp 源码解析 - 拦截器

    一.前言 看一下 RealCall 中的拦截器排序: Response getResponseWithInterceptorChain() throws IOException {// Build a ...

  9. Android OkHttp 全面详解

    Android OkHttp 全面详解 包的导入 基本使用 异步请求 同步请求 build创建 源码跟踪 newCall RealCall.enqueue Dispatcher.enqueue exe ...

最新文章

  1. GT Transceiver中的重要时钟及其关系(2)单个外部参考时钟使用模型
  2. iPhone与Android手机 各个型号的UserAgent
  3. 电源芯片选择DC/DC还是LDO?《转》
  4. C++泛型编程实现平衡二叉搜索树AVL
  5. ios 查询mysql数据库操作系统_iOS数据库FMDB--增删改查(模糊查询)详细介绍
  6. java 线程不足_jvm - 如何在没有运行缺点的Windows上获取Java进程的线程和堆转储...
  7. Windows下MySQL的详细安装教程
  8. css+div(2)
  9. arcgis js平滑线工具_Arcgis中文字体、平滑线插件使用说明
  10. 开发移动网页应用的一些技术指导
  11. Android实现Telnet客户端
  12. STM32——红外遥控器实验
  13. 私服游戏怎么选择服务器性能和配置。
  14. 刷机必备:BlackBerry ROM,桌面管理器下载
  15. html鼠标自动图片放大,css如何实现鼠标放在图片上时图片放大呢?
  16. ~ 运算符和 ~~ 运算符(JS)
  17. HDU-3605 Escape
  18. 基于SqlServer基本表的插入、修改和删除
  19. Quartz2D学习记录
  20. 【Python】基于人脸识别的智能考勤系统(Pyqt5+MySQL+Opencv) [PC端部分-已附源码]

热门文章

  1. 深入了解Intel保护模式
  2. 计算机对英语口语考试,计算机辅助高考英语口语考试中题型的设计与交际能力的实现.pdf...
  3. java的dbhelper类_DBHelper.java(数据库连接类)
  4. Interview Q A 程序会在哪一行死掉
  5. 关于伺服驱动控制的课本_西门子伺服电机驱动系列汇总,说明书参数及使用方法。...
  6. apache自动跳转到服务HTML,apache自动将http协议跳转到https
  7. mysql configuration_MySQL Configuration 教程
  8. java 判断今天_Java 判断某个具体时间是否属于当天范围(24H)
  9. mysql主键更新被锁_MySQL 的加锁处理,你都了解的一清二楚了吗?
  10. 安全起见,这款 IDEA 插件赶紧删了吧!