okhttp传输文件类型的参数

SpringBoot2.1.x,okhttp3网络请求之MultipartFile方式上传文件,multipart/form-data表单多文件+多参数 一)引入okhttp3的jar <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.0.0</version> </dependency> 二)提供一个上传服务接口,文件类型为MultipartFile package com.oyse. 阅读详情

引入okhttp依赖

<!-- okhttp -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>3.14.9</version>
</dependency>

代码示例

/**
 * @param url 请求路径
 * @param key 请求参数名称
 * @param file 请求文件路径
 * @return 响应结果
 **/
public static String uploadFile(String url, String key, File file) {
    //最好设置一下connectTimeout、readTimeout、writeTimeout,这三个参数默认10s,可能传输文件会出现超时
OkHttpClient client = new OkHttpClient();
    RequestBody requestBody = new MultipartBody.Builder()
            .setType(MultipartBody.FORM)
            .addFormDataPart(key, file.getName(), RequestBody.create(MULTIPART_FORM_DATA, file))
            .build();

    Request request = new Request.Builder()
            .url(url)
            .post(requestBody)
            .build();

    try (Response response = client.newCall(request).execute()) {
    if (response.isSuccessful() && response.body() != null) {
        return response.body().string();
    }
} catch (IOException e) {
    //todo exception
}

	return null;
}

比如:Java Controller定义的excel作为请求参数

@PostMapping("test")
public Response saveByExcel(@RequestParam("file") MultipartFile importFile) {
}

uploadFile方法请求的key参数就是file

Okhttp实现上传文件+参数请求接口form-data 然后controller层的传参需要用@RequestParam或者直接一个请求的实体类,如果使用实体类,千万不要加@RequestBody,不然结合上传文件会失效,上传文件使用。有时候需要对接一些接口,而且接口传参不仅需要各种类型的参数,甚至还要上传文件,所以遇到挺多坑,用postman的生成代码也不好用,于是就有了这篇文章。@RequestPart("file") MultipartFile file进行传参。话不多说,我们直接上代码。首先是service层。 阅读详情

相关推荐

Okhttp传参与tornado解析(POST方式)

Okhttp传参方式不同,tornado服务器那边的解析方式也就不同,这里记录两种通用的传参方式及对应的解析方式: 普通form表格方式: 1)okhttp: val formBody = FormBody.Builder() for(entry in params.entries){ formBody.add(entry.key as ...

dingpwen的博客 464

Okhttp如何给后台传递int参数

刚开始用Okhttp,一直想和使用Xutils的时候一样直接传递int的参数给后台,  就是这样的想这样传递参数,但是发现只能传递的是String类型的,报错了;查看源码后发现 人家就没有想让你传递别的类型的; 但是我就是想传int的类型呀,不,应该说我想传递int类型,是我想传递给后台后,后台拿到的就是int类型的,其实说哩,我们传递给后台传递的不管是什么数据,最后后台拿到的都是J...

使徒---同路人 5801

使用OkHttp拦截器,添加统一参数

场景大家的应用处于安全考虑,又没有加密呢?又没用一个一个加密参数做验证呢?如果没有那你们就太low了(当然对于懂逆向的这些都没啥用处),如果有你是如何做的呢?为何做验证处于安全考虑,http请求都是可以通过抓包工具抓取下来的(Fiddler),抓取下来,我就可以通过模拟请求发送你们的请求,做一款外挂,大伙也可以试试,抓别人的包,然后请求即可...,一般来说如何做呢?就是对一个参数经过一系列算法,然...

wenyingzhi的博客 1万+

android OKhttp 参数 传递数组类型

1, 一直在使用okhttp 最近有参数要传递数组。 2,google , 源码中是使用 map 参数 key --value 进行存储的。进行重复性赋值的时候 最后一个会替换掉 前一个 3,最简答的是用拼接 URL 的方式进行传递  例如  http://www.baidu.com?a=1&a=2&a=3...... 这样 传递的是一个 int[] 类型的 数组 但是 大家都知道的 这

Coder.L的博客 2万+

基本使用——OkHttp3详细使用教程

概述 OkHttp现在应该算是最火的Http第三方库,Retrofit底层也是使用OkHttp,网上很多教程都写的不错,但是有些我认为重要的知识,大多一笔带过,所以我决定写一篇入门文章 OkHttp官网地址:http://square.github.io/okhttp/ OkHttp GitHub地址:https://github.com/square/okhttp 出现背景 网络...

薛瑄的博客 6万+

OkHttp框架缓存的缺陷

现在的App为了全面分析用户的使用习惯,在网络请求时一般都会获取手机的一些硬件或网络信息,比如使用的网络环境。同时为了信息传输的安全性,可能还会对请求进行加密。在这些情况下OkHttp的缓存系统就会失效了,导致用户在无网络情况下不能访问缓存。

Freeman的专栏 4390

Retrofit+OkHttp 参数使用AES加密Demo

最近在做App代码安全方面的优化,特此记录一下。 我们现在App大多数都是基于Retrofit+OkHttp的网络请求框架,现在的需求是需要将请求的参数进行加密传输,下面图片中我们进行一个对比,一个是明文传输,一个是密文传输: 明文传输 密文传输 由于考虑到加密和解密的效率,我们现在选用的是AES对称加密。至于对称和非对称加密,可以参考以往的[文章]。(https://blog.youkuaiyun.com/u013762572/article/details/88733982) 1. 客户端修

成长的烧年 2811

OkHttp中GET异步数据传输

Okhttp简介 OkHttp是一个优秀的网络请求框架,可能一说到网络请求框架,可能很多人都会想到volley,volley是一个Google提供的网络请求框架,我的博客里也有一篇专门介绍volley的博客,博客地址在此Android网络请求 ------ Volley的使用 那么既然Google提供了网络请求的框架,我们为什么还要使用OkHttp呢,原来是volley是要依靠HttpCient的,而Google在Android6.0的SDK中去掉了HttpCient,所以OkHttp就开始越来越受大家的欢

qq_43910194的博客 481

okHttp3 传输File文件

业务中难免会调用微信啊阿里云的... 所谓人家的接口,我目前着手的就是要向微信发送请求获取素材信息。所以这个时候就用到了okHttp3来帮助我们发送http的get啊post请求了。 遇到的一个比较棘手的问题就是该项目的HttpUtil中没有传输File的方法。所以呢最后在负责人的帮助下,就解决了这个问题: 日常ps下:参数讲解!!!url就是发送请求的url,file就是你要传输的文件,ty...

李静静 1万+

(二)OkHttp网络请求配置参数详解

前面说到OkHttp网络请求的总体框架。这一章节主要通过解读OkHttpClient的内容,了解可以通过框架配置哪些参数,以及这些参数的意义。让我们对OkHttp框架和HTTP协议之间的关系有更深的了解。

ZH的博客 4570

Android:OkHttp3传输数据给服务器存入Mysql

Android传输数据给服务器存入Mysql

YoungHD的博客 1137

Java Okhttp带参数传输文件

Java And php public static void uploadFile() throws IOException { OkHttpClient client = new OkHttpClient(); String url="https://www.baidu.com/";//上传URL File file=new File("xxx/xxx/xxx.zip");//文件路径(本地) MultipartBody.Builde

qq_43056780的博客 744

【客户案例】母婴行业头部品牌是如何做私域的

各品牌争相跑马圈地,想方设法圈住流量,建立品牌资产;私域运营是一项“重人力”的工作,在传统的品牌运营过程中,私域操盘手经常会由于一对多导致无法兼顾,只能通过提高触达次数的方式加大漏斗,这样难以让每个社群都发挥出应有的价值,甚至还会导致一定程度的用户流失。除了宝妈身份外激发的用户认同感、亲密度外,KOC们作为产品的使用者,自由选择的推品和自由创作的推广文案都更具有真实性、代表性,能够极大程度激发群友们的信任感,从而愿意为产品买单,转化复购水到渠成。不同阶段的宝妈,母婴知识的储存量和经验是不同的,K品牌还会。.

圈量SCRM系统-企微营销工具-私域流量运营软件 948

Android Okhttp3 传递数组参数

android OKhttp 参数 传递数组类型 这一篇是基于弘扬写的okhttp3Util进行写的。有些Android开发是基于原生的okhttp3进行开发的。传递数组类型也是存在的。说句实在话,我刚刚看下源码使用原生的进行数组传递,还是比较简单比较方便的。其本质是不管开发者是用什么样的方式去传递参数的,可以自定义的设置。跟android OKhttp 参数 传递数组类型博客是一样的。传递数组分...

Coder.L的博客 1万+

STM32G474+Simulink+HIL硬件在环仿真

硬件:STM32G474RET6(官方的NUCLEO板)软件:STM32Cube_FW_G4 V1.6.1芯片包;KeilMATLAB 2023B(本文已成功)STM32嵌入式支持包。

qq_44701116的博客 1782

傻白入门芯片设计,wafer/die/chip/cell(一)

芯片设计的一些基本概念

qq_46675545的博客 2万+

使用RestTemplate调用其他项目接口传输文件 okhttp

使用RestTemplate调用其他项目接口传输文件 okhttp

m0_49191104的博客 764

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

MoorePlus的博客 2373

记录一次OkHttp请求参数的添加BUG

公司项目有需求,需要对所有接口传参进行加密,比如接口传参为a=111,b=222,这时候要通过“a=111,b=222”进行加密生成一个sign="333“。 为此就通过okHttp的拦截器进行公共参数的添加。 override fun intercept(chain: Interceptor.Chain): Response { var request = chain.requ...

xypeng123的博客 587

国科大学习资料--高级软件工程-复习题简答题答案

国科大学习资料–高级软件工程(罗铁坚 魏峻 刘丹)-复习题简答题答案 def fib3 n (1…n).inject([0,1]){|mem| puts mem[0]+mem[1]; [mem[1],mem[0]+mem[1]]} end =====================================================================================================================================

无名何许人的博客 1400

Android okhttp 创建请求参数格式为json数据格式

这里涉及到数据okhttp 的一些使用,我就不多说了,自己在主的项目去添加相关的依赖。 最新依赖看github 上最新的 https://github.com/square/okhttp 注意:手机调试和本地后台对接接口必须是在 同一局域网内测试 还有相关的文件清单 给予相关的权限 <uses-permission android:name="android.permi...

qq_36771930的博客 2340

MIKE水动力笔记18_如何将dfsu流场模拟结果的数据导出成txt文件

MIKE的模拟结果dfsu文件的数据是可以导出的,导出格式为xyz,我们也可以将其改后缀改为txt文本格式,其中包含了某一时刻下所有网格坐标点的数据。

晏长街的博客 4410
上一篇: Kafka安全认证(Java)
下一篇: okhttp请求使用cookie
思维的深度
博客等级 码龄11年 2万+粉丝 391原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值