技术标签: Java Https http Http Json https httpclient
/**
* @Description Http|Https 请求工具类
* @Author blake
* @Date 2018/12/12 下午4:33
* @Version 1.0
*/
public class HttpUtils {
private static PoolingHttpClientConnectionManager connMgr;
private static RequestConfig requestConfig;
private static final int MAX_TIMEOUT = 7000;
static {
// 设置连接池
connMgr = new PoolingHttpClientConnectionManager();
// 设置连接池大小
connMgr.setMaxTotal(100);
connMgr.setDefaultMaxPerRoute(connMgr.getMaxTotal());
RequestConfig.Builder configBuilder = RequestConfig.custom();
// 设置连接超时
configBuilder.setConnectTimeout(MAX_TIMEOUT);
// 设置读取超时
configBuilder.setSocketTimeout(MAX_TIMEOUT);
// 设置从连接池获取连接实例的超时
configBuilder.setConnectionRequestTimeout(MAX_TIMEOUT);
// 在提交请求之前 测试连接是否可用
connMgr.setValidateAfterInactivity(5000);
// configBuilder.setStaleConnectionCheckEnabled(true);
requestConfig = configBuilder.build();
}
/**
* 发送 GET 请求(HTTP),不带参数
*
* @param url
* @return
*/
public static String doGet(String url) {
return doGet(url, new HashMap<>());
}
/**
* 发送 GET 请求(HTTP),传入参数为 Key-Value 形式
*
* @param url
* @param params
* @return
*/
public static String doGet(String url, Map<String, Object> params) {
String apiUrl = url;
StringBuffer param = new StringBuffer();
int i = 0;
for (String key : params.keySet()) {
if (i == 0)
param.append("?");
else
param.append("&");
param.append(key).append("=").append(params.get(key));
i++;
}
apiUrl += param;
String result = null;
HttpClient httpclient = HttpClientBuilder.create().build();
try {
HttpGet httpPost = new HttpGet(apiUrl);
HttpResponse response = httpclient.execute(httpPost);
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("执行状态码 : " + statusCode);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream inStream = entity.getContent();
result = IOUtils.toString(inStream, "UTF-8");
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* 发送 POST 请求(HTTP),不带参数
*
* @param apiUrl
* @return
*/
public static String doPost(String apiUrl) {
return doPost(apiUrl, new HashMap<>());
}
/**
* 发送 POST 请求(HTTP),参数为 Key-Value 形式
*
* @param apiUrl API接口URL
* @param params 参数map
* @return
*/
public static String doPost(String apiUrl, Map<String, Object> params) {
CloseableHttpClient httpClient = HttpClients.createDefault();
String httpStr = null;
HttpPost httpPost = new HttpPost(apiUrl);
CloseableHttpResponse response = null;
try {
httpPost.setConfig(requestConfig);
List<NameValuePair> pairList = new ArrayList<>(params.size());
for (Map.Entry<String, Object> entry : params.entrySet()) {
NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry
.getValue().toString());
pairList.add(pair);
}
httpPost.setEntity(new UrlEncodedFormEntity(pairList, Charset.forName("UTF-8")));
response = httpClient.execute(httpPost);
System.out.println(response.toString());
HttpEntity entity = response.getEntity();
httpStr = EntityUtils.toString(entity, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (response != null) {
try {
EntityUtils.consume(response.getEntity());
} catch (IOException e) {
e.printStackTrace();
}
}
}
return httpStr;
}
/**
* 发送 POST 请求(HTTP),参数为JSON形式
*
* @param apiUrl
* @param json json对象
* @return
*/
public static String doPost(String apiUrl, Object json) {
CloseableHttpClient httpClient = HttpClients.createDefault();
String httpStr = null;
HttpPost httpPost = new HttpPost(apiUrl);
CloseableHttpResponse response = null;
try {
httpPost.setConfig(requestConfig);
StringEntity stringEntity = new StringEntity(json.toString(), "UTF-8");
stringEntity.setContentEncoding("UTF-8");
stringEntity.setContentType("application/json");
httpPost.setEntity(stringEntity);
response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
System.out.println(response.getStatusLine().getStatusCode());
httpStr = EntityUtils.toString(entity, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (response != null) {
try {
EntityUtils.consume(response.getEntity());
} catch (IOException e) {
e.printStackTrace();
}
}
}
return httpStr;
}
批量clone仓库代码#!/bin/bashcode_addr=('[email protected]:project/project1.git''[email protected]:project/project1.git''[email protected]:project/project1.git')website_dir=websiteclone_code(){ #判断文件夹是否存在 if [ -d $website_dir ];then echo "文件夹存在" cd $websit_clone dev 代码
四字命令可以在linux的环境下查看zk的一些相关的信息,使用之前需要安装nc命令:yum install nc四字命令语法:echo:[command] | nc [ip] [port]常用command:(1)stat:查看当前zk的状态信息,,以及mode(表示单机或集群)模式(2)ruok:查看当前zk服务器是否启动状态,若启动,回复imok(3)dump:..._zk四字命令
本周一,沃尔特·迪士尼(Disney)公司CEO Bob Chapek在波士顿举行的活动中表示,虚拟现实“元宇宙”是迪士尼的未来。尽管元宇宙尚未创建出来,但这位迪士尼CEO已将虚拟现实世界..._迪士尼ceo
前言首先聊一下什么是JVM, 我们为什么要去学习JVMJVM Java虚拟机它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运..._-xx 配置+号是什么
hive lock报错 FAILED: Error in acquiring locks: Locks on the underlying objects cannot be acquired. retry after some time 解决办法:关闭并发,set hive.support.concurrency=false;hive锁介绍: hive存在两种锁,共享锁Shar
从周六开始,面试、笔试、宣讲会连轴转,昨天收到群面的fail通知之后,下午也不想去广工现场跟一群汉子手撕代码了,选择了爬床睡觉,过了一天的安逸日子,终于勤奋起来把之前的笔试盲点总结一下,虎牙面试的稍后再整理。希望IT行业对女生少点偏见吧————————————————————————正文分割线———————————————————————————1、TCP采用心跳报文保持连接 √...
1.注解开发与xml开发区别: (1)注解开发不需要在resources下创建实体类映射文件(file)UserMapper.xml。 (2)注解开发的sql语句写在 dao层接口的方法上面xml开发sql语句写在dao层在resources层对应的.xml映射文件中。 (3)注解开发mybatis-config.xml的内的映射指向dao层接口的全限定路径,xml开发mybatis-config.xml的内的映射指向dao...
关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services,和Intent
1.什么是程序?一套做数据处理的步骤。程序 = 指令+ 数据。是一套静态的步骤。(比如说菜谱)程序是静态的,一般表现为一个或一组文件2.什么是进程?1.站在用户角度的视角()英文本意就是:过程进程是程序的一次执行过程——按照菜谱的一次做菜的过程,进程是动态的。一个程序,可以进行多次执行(表现为多个进程);甚至可以“同时”执行(多个进程同时存在)进程是程序在“运行阶段”的视角主题2.站在 OS(操作系统)实现的角度看什么是进程()进程..._vs process
介绍了张量PCA及其变体,包括鲁棒张量PCA(R-TPCA)、张量低秩表示(TLRR)和异常稳健张量PCA(OR-TPCA),用于处理三种数据,即(i)高斯噪声张量数据、(ii)稀疏破坏张量数据和(iii)异常破坏张量数据。例如,对于具有稀疏破坏的低秩张量数据,R-TPCA和TLRR可以在温和的条件下准确地恢复干净的数据,而TLRR可以准确地检索它们的真实张量子空间,从而准确地对它们进行聚类。1927年,希区柯克提出了张量的多元形式的概念,即将张量表示为有限数量的秩一张量的和;张量是一个多维数组。_张量分解的应用
火星A+BTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12205 Accepted Submission(s): 4115Problem Description读入两个不超过25位的火星正整数A和B
public void uploadImage(String interfaceUrl,String filePath,String idCardNo) { Logger.d(“interfaceUrl:”+interfaceUrl); OkHttpClient mOkHttpClient = new OkHttpClient(); File ...