前往小程序,Get更优阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 >java后台发起上传文件的post请求(http和https)

java后台发起上传文件的post请求(http和https)

作者头像
全栈程序员站长
发布2022-07-22 19:11:41
4.3K0
发布2022-07-22 19:11:41
举报
文章被收录于专栏: 全栈程序员必看 全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

一、http post

对于文件上传,客户端通常就是页面,在页面里实现上传文件不是什么难事,写个form,加上enctype = “multipart/form-data”,在写个接收的就可以了,没什么难的。如:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Hello World!</title>
  5. </head>
  6. <body>
  7. <form method=”POST” enctype=”multipart/form-data” action=”/XXX”>
  8. <p>文件1:<input type=”file” name=”file1″ /></p>
  9. <p>文件:<input type=”file” name=”file” /></p>
  10. <p>其他信息:<input name=”luid” /></p>
  11. <p><input type=”submit” value=”上传” /></p>
  12. </form>
  13. </body>
  14. </html>

如果要用java.net.HttpURLConnection来实现文件上传,还真有点搞头,实现思路和具体步骤就是模拟页面的请求,页面发出的格式如下:

  1. —————————–7da2e536604c8
  2. Content-Disposition: form-data; name=”luid”
  3. 123
  4. —————————–7da2e536604c8
  5. Content-Disposition: form-data; name=”file1″; filename=”D:\haha.txt”
  6. Content-Type: text/plain
  7. haha
  8. hahaha
  9. —————————–7da2e536604c8
  10. Content-Disposition: form-data; name=”file”; filename=”D:\huhu.png”
  11. Content-Type: application/octet-stream
  12. 这里是图片的二进制数据
  13. —————————–7da2e536604c8–

上面username是form表单中的文本参数,值为123,file1是form表单中上传的文本文件。file是form表单中上传的其他类型的文件,他们的Content-Type不一样。

知道了这些,就可以编写代码来模拟了,这里只上传一个文件file,是张图片,附上代码的截图:

java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)

以上的空行”\r\n”是比较严格的,要换行或者换两行,都是根据格式来的。

二、https post

一般都是http的请求,但现在也有越来越多的外部接口采用https的方式来调用。比如这次工作中需要调用的FaceId他们的身份证识别接口,这个接口就是https的,而且传递的参数里还需要身份证照片,这明显是个文件。如下:

java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)

java后台发起https的文件上传请求的原理以及整个步骤和http的基本一致,只是这次的URLConnection是HttpsURLConnection,而且由于https的请求需要签名等安全认证,所以会在设置HttpsURLConnection时需要多设置两个属性,如下的setSSLSocketFactory()和setHostnameVerifier():

java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)

所需要的TrustAnyTrustManager类和TrustAnyHostnameVerifier类代码如下:

java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)

其他的代码就和HttpURLConnection的一样了。

以上的代码都是使用JDK自带的net工具类,然后模拟页面的form发出的请求来完成的,如果想使用HttpClient来完成发送请求也是可以的,并且更加简单明了,不需要自己写模拟的步骤。因为是第三方工具包,需引入对应jar包:

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpclient</artifactId>

<version>4.5.2</version>

</dependency>

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpmime</artifactId>

<version>4.5.2</version>

</dependency>

编写的代码如下:

java后台发起上传文件的post请求(http和https)
java后台发起上传文件的post请求(http和https)

以上代码都是经过测试的测试代码,你可以自己封装好以供自己今后使用(ps:别想复制,代码都是图片,因为我在沙盒内,代码复制不出来0.0)!

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/125999.html原文链接:https://javaforall.cn

本文参与  腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年4月6,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与  腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
LV.
文章
0
获赞
0
相关产品与服务
卡证文字识别
卡证文字识别(Card Optical Character Recognition,Card OCR)基于行业前沿的深度学习技术,提供身份证识别、银行卡识别、名片识别、营业执照识别等多种服务,支持将图片上的文字内容,智能识别为结构化的文本,可应用于用户注册、银行开户、交通出行、政务办事等多种场景,大幅提升信息处理效率。
产品介绍
热门文字识别资源包新用户14.9元起,应用广泛,准确率高
领券
问题归档 专栏文章 快讯文章归档 关键词归档 开发者手册归档 开发者手册 Section 归档

资讯网电锯惊魂4 电影天堂网站改版制作厦门建设行业网站2019女孩子起名seo关键词快排软件网站建设实践报告人性的弱点txt厦门建设行业网站周易微信群常州公司起名聊城做网站优化网名英语男网站设计的对比好父姓王母姓赵起名破解造梦西游4双胎起名字大全男孩吗建站网站制作北京网站建设哪家便宜制作服装吊牌网站可歌可泣的意思推荐国外设计网站seo服务顾问取名周易卦象重要吗襄樊行业网站制作以慕字开头的女孩起名七非算命网免费算卦电影战争天堂新起公司名称瓷都免费起名测试打分设计灵感网站少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

资讯网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化