java string 包含http_Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)...

一、HttpPost上传文件

public static String getSuffix(final MultipartFile file){

if(file == null || file.getSize() == 0){

return null;

}

String fileName = file.getOriginalFilename();

return fileName.substring(fileName.lastIndexOf(".")+1);

}

public static JSONObject uploadFile(String urlStr, MultipartFile file, String token) throws IOException {

// 后缀

String suffix = getSuffix(file);

CloseableHttpClient httpClient = HttpClients.createDefault();

HttpPost uploadFile = new HttpPost(urlStr);

uploadFile.setHeader("authorization","Bearer " + token);

DecimalFormat df = new DecimalFormat("#.##");

MultipartEntityBuilder builder = MultipartEntityBuilder.create();

// HTTP.PLAIN_TEXT_TYPE,HTTP.UTF_8

builder.addTextBody("name", file.getOriginalFilename(), ContentType.create("text/plain", Consts.UTF_8));

builder.addTextBody("size", df.format((double) file.getSize() / 1024), ContentType.TEXT_PLAIN);

builder.addTextBody("suffix", suffix, ContentType.TEXT_PLAIN);

// 把文件加到HTTP的post请求中

// String filepath = "/user/test/123.png"

// File f = new File(filepath);

builder.addBinaryBody(

"file",

file.getInputStream(),

// new FileInputStream(f),

ContentType.APPLICATION_OCTET_STREAM,

file.getOriginalFilename()

);

HttpEntity multipart = builder.build();

uploadFile.setEntity(multipart);

CloseableHttpResponse response = httpClient.execute(uploadFile);

HttpEntity responseEntity = response.getEntity();

String sResponse= EntityUtils.toString(responseEntity, "UTF-8");

JSONObject jsonObject = JSONObject.parseObject(sResponse);

// {"code":1,"data":"7efb19980373dd90f5077576afa7481a","message":""}

// {"code":401,"httpStatus":null,"data":"373656a2-baff-423a-93fb-704f51003509","message":"error"}

return jsonObject;

}复制代码

二、HttpGet对API进行Get请求

两张方式:

1、在URL中拼接

CloseableHttpClient httpClient = HttpClients.createDefault();

String urlStr ="http://abc.com/oss/getUrl?id=" + ossFileId;

HttpGet httpGet = new HttpGet(urlStr);

// 使用Oauth2进行权限验证

httpGet.setHeader("authorization","Bearer 34195fa8-00a6-4288-bda9-7d37541c3a39");

CloseableHttpResponse response = httpClient.execute(httpGet);

HttpEntity responseEntity = response.getEntity();

String sResponse= EntityUtils.toString(responseEntity, "UTF-8");

System.out.println(sResponse);

JSONObject jsonObject = JSONObject.parseObject(sResponse);

System.out.println(jsonObject);复制代码

2、使用参数的方式

CloseableHttpClient httpClient = HttpClients.createDefault();

/*

* 由于GET请求的参数都是拼装在URL地址后方,所以我们要构建一个URL,带参数

*/

URIBuilder uriBuilder = new URIBuilder("http://www.baidu.com");

/** 第一种添加参数的形式 */

/*uriBuilder.addParameter("name", "root");

uriBuilder.addParameter("password", "123456");*/

/** 第二种添加参数的形式 */

List list = new LinkedList<>();

BasicNameValuePair param1 = new BasicNameValuePair("name", "root");

BasicNameValuePair param2 = new BasicNameValuePair("password", "123456");

list.add(param1);

list.add(param2);

uriBuilder.setParameters(list);

// 根据带参数的URI对象构建GET请求对象

HttpGet httpGet = new HttpGet(uriBuilder.build());

// 使用Oauth2进行权限验证

httpGet.setHeader("authorization","Bearer 34195fa8-00a6-4288-bda9-7d37541c3a39");

CloseableHttpResponse response = httpClient.execute(httpGet);

HttpEntity responseEntity = response.getEntity();

String sResponse= EntityUtils.toString(responseEntity, "UTF-8");

System.out.println(sResponse);

JSONObject jsonObject = JSONObject.parseObject(sResponse);

System.out.println(jsonObject);复制代码

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530150.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java倒计时跳出窗口_java倒计时弹出框

直接使用java语言写出一个运行时的弹出框倒计时&#xff1a;package test.dagong.testDecreaseDate;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.sw…

jpa mysql存储过程_Jpa调用存储过程及参数

public List findAllEntityListBySearch(Long inputInfoId, int flag) throws Exception {List infoviewListnew ArrayList<>();EntityManager em emf.createEntityManager();try {StoredProcedureQuery storedProcedure em.createStoredProcedureQuery("存储名称&…

python从mongodb里取出数据进行可视化_python3 mongoDB数据库的安装配置与可视化

python3 mongoDB数据库的安装配置与可视化。前天说是要学习如何使用mongoDB的链接与安装。安装环境&#xff1a; wind10 还是盗版的 磁盘分析&#xff1a;只有一个C盘&#xff0c;步骤&#xff1a;1 . 下载这里下载了对应的msi文件&#xff0c;貌似.zip文件没有了2 我默认把mon…

idea 注入mapper报错报红的几种解决方案

文章目录 前言方法1&#xff1a;为 Autowired 注解设置required false方法2&#xff1a;用 Resource 替换 Autowired方法3&#xff1a;在Mapper接口上加上Repository注解方法4&#xff1a;用Lombok方法5&#xff1a;把IDEA的警告关闭掉方法6&#xff1a;不用管他 前言 相信大…

java 调用对象的方法_JAVA调用对象方法的执行过程

JAVA调用对象方法的执行过程&#xff1a;①.编译器查看对象的声明类型和方法名。假设调用x.f(parameter), 且隐式参数x声明为C类型的对象&#xff0c;有可能在C对象中存在多个参数类型和参数个数不同的f的方法{例如&#xff1a;f(int)、f(int,String)和f(String)}&#xff0c;…

java类默认权限_Java 访问权限控制以及类初始化顺序

一. Package在一个项目中&#xff0c;不可以有相同的两个包名package语句必须是文件中除注释外第一句程序代码&#xff0c;否则不能通过编译。二. Java访问权限概述类成员&#xff1a;对于一个类&#xff0c;其成员(包括成员变量和成员方法)能否被其他类所访问&#xff0c;取决…

java http头 字符串转日期_springboot~DTO字符字段与日期字段的转换问题

不会自动转换string与date主要是这个意思&#xff0c;前端提交的JSON里&#xff0c;日期是一个字符串&#xff0c;而对应后端的实体里&#xff0c;它是一个Date的日期&#xff0c;这两个在默认情况下是不能自动转换的&#xff0c;我们先看一下实体实体public class UserDTO {pr…

java super extends_Java继承和super的用法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼继承的关键字:extends格式如下: class 子类名 extends父类名{...}例如学生是继承人类这一父类的.class student extends person{...}如果一个类的声明没有使用关键字extends,则这个类默认是继承Object类的.Object是所有类的父类.Ob…

比较abc大小的java_比较abc大小java

比较abc大小java[2021-02-09 04:04:20] 简介:php去除nbsp的方法&#xff1a;首先创建一个PHP代码示例文件&#xff1b;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff1a;《PH…

海天食品的java开发工作如何_再三个月就秋招了,我想找一份java开发工作,现在应该怎么准备一下?...

在找工作之前&#xff0c;大家都要做一些准备工作&#xff0c;java开发也是如此掌握核心JavaSE首先&#xff0c;从核心Java(JavaSE)开始学习&#xff0c;尽可能地掌握它。你应该了解和掌握一些基本概念&#xff0c;如循环&#xff0c;数组&#xff0c;运算符等等。此外&#xf…

java udp简单聊天程序_Java基于UDP协议实现简单的聊天室程序

最近比较闲&#xff0c;一直在抽空回顾一些java方面的技术应用。今天没什么事做&#xff0c;基于udp协议&#xff0c;写了一个非常简单的聊天室程序。现在的工作&#xff0c;很少用到socket&#xff0c;也算是对java网络编程方面的一个简单回忆。先看一下效果&#xff1a;实现的…

java9 反应编程_Java9第四篇-Reactive Stream API响应式编程

file我计划在后续的一段时间内&#xff0c;写一系列关于java 9的文章&#xff0c;虽然java 9 不像Java 8或者Java 11那样的核心java版本&#xff0c;但是还是有很多的特性值得关注。期待您能关注我&#xff0c;我将把java 9 写成一系列的文章&#xff0c;大概十篇左右。Java 9的…

bb10系统支持java吗_黑莓BB10怎么样 BlackBerry 10系统好用吗?

曾几何时黑莓Blackberry OS是一款十分受用户欢迎的手机系统&#xff0c;不过随着手机系统市场已经被苹果iOS、谷歌安卓、微软Windows Phone三分天下&#xff0c;致使曾经的黑莓帝国逐渐沦陷&#xff0c;体验和性能都已经明显跟不上iOS与安卓等系统的脚步了&#xff0c;也因为如…

java中兴参与实参相同_中兴通讯_传输SDH试题(含答案)

中兴传输SDH试题一、单项选择题(每小题2分&#xff0c;共30分)1、在SDH系统中, RSOH指(A)。A.再生段开销B.复用段开销C.再生段通道开销D.复用段通道开销2.、同步数字体系SDH具有(A)帧结构。A.块状B.串行C.链形D.三维3、管理指针单元的作用是(A)。A、用来指示信息净负荷的第一个…

php 正则提取url,php 正则表达式提取网页超级链接url的函数

function match_links($document) {preg_match_all("]))[^>]*>?(.*?)isx",$document,$links);while(list($key,$val) each($links[2])) {if(!empty($val))$match[link][] $val;}while(list($key,$val) each($links[3])) {if(!empty($val))$match[link][] …

php array colum,php5.5新数组函数array_column使用

array_column 用于获取二维数组中的元素(PHP 5 > 5.5.0)&#xff0c;但我们有时候需要在低版本中使用&#xff0c;那么就可以使用下面的代码即可PHP5.5发布了&#xff0c;其中增加了一个新的数组函数array_column&#xff0c;感觉不错的&#xff01;但是低版本PHP要使用&…

php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法

前言2019年春节已过&#xff0c;今天是上班第一天&#xff0c;还得翻一翻之前没有看完的PHP源码。今天聊的是字符串顺序打乱函数str_shuffle。这个函数本身使用频率并不高。但是&#xff0c;其内部实现还是非常有趣的。str_shuffle() 函数随机地打乱字符串中的所有字符。要注意…

php+js+return+true,js中return、return false、return true的区别

1.语法及返回方式①返回控制与函数结果语法为:return 表达式;语句结果函数的执行,返回调用函数,而且把表达式的值作为函数结果返回出去②返回控制无函数结果语法为:return;在大多数情况下,为事件处理函数如果让其返回false,可以防止默认的事件行为.例如,默认情况下,点击一个标签…

php strlen遇0截断,聊下php下的截断问题

0x01 起因有天在群里说起上传的%00截断的一些问题&#xff0c;就想起之前自己在这个问题踩过坑&#xff0c;想起了自己曾经的flag说要写文章&#xff0c;一直没写&#xff0c;现在来填坑了。0x02 经过源码理解1234//test.phpinclude "1.txt\000.jpg";?>1234//1.t…

test.php.bak,记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

题目很简单&#xff0c;一个滑稽打开源码&#xff0c;发现存在source.php文件于是访问文件&#xff0c;发现出现一串php源码提示存在hint.php&#xff0c;于是访问发现一句话flag not here, and flag in ffffllllaaaagggg再回过头来观察source.php明显是一道代码审计的问题&…