package com.froad.points.bankserver.util;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.NoRouteToHostException;
import java.net.SocketTimeoutException;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.froad.points.bankserver.constant.Constants;
import com.froad.points.bankserver.exception.common.FroadException;
/**
*
* <pre>
* MultiThreadHttpClient 返回字符串和bety[]
* </pre>
*
* @author xueyunlong
* @create 2014年9月15日 下午4:54:24
* @modify
* @since JDK1.6
*/
public class MultiThreadHttpClient {
private static Log logger = LogFactory.getLog(MultiThreadHttpClient.class);
@SuppressWarnings("deprecation")
public static String postMethod(String reqUrl, String strStream) throws FroadException {
String returnStr = "";
logger.info("regUrl:"+reqUrl);
// 多线程
MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient httpClient = new HttpClient(connectionManager);
// 测试是否超时
HttpConnectionManagerParams managerParams = httpClient.getHttpConnectionManager().getParams();
// 设置连接超时时间(单位毫秒)
managerParams.setConnectionTimeout(200000);
// 设置读数据超时时间(单位毫秒)
managerParams.setSoTimeout(180000);
PostMethod postMethod = new PostMethod(reqUrl);
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
try {
postMethod.setRequestBody(strStream);
long startTime = System.currentTimeMillis();
int status = httpClient.executeMethod(postMethod);
//System.out.println("postMethod=============="+postMethod);
long endTime = System.currentTimeMillis();
logger.info(status+"status,连接用时" + (endTime - startTime) + "ms");
if(status==HttpStatus.SC_OK){
BufferedReader br=new BufferedReader(new InputStreamReader(postMethod.getResponseBodyAsStream(),"utf-8"));
String line = "";
StringBuffer buffer = new StringBuffer();
while ((line = br.readLine()) != null) {
buffer.append(line);
}
logger.info("响应体:"+buffer.toString());
returnStr = buffer.toString();
} else {
logger.info("服务器HTTP响应异常!状态码:"+status);
throw new FroadException(Constants.RESULT_FAIL,"发生Http异常!");
}
} catch (HttpException e) {
logger.info("发生Http异常:" + e);
throw new FroadException(Constants.RESULT_FAIL,"发生Http异常!");
} catch (NoRouteToHostException e) {
logger.info("本机未联网:" + e);
throw new FroadException(Constants.RESULT_FAIL,"本机未联网!");
} catch (ConnectException e) {
logger.info("连接不上服务器:" + e);
throw new FroadException(Constants.RESULT_FAIL,"连接不上服务器!");
} catch (SocketTimeoutException e) {
logger.info("读取数据超时:" + e);
throw new FroadException(Constants.RESULT_PROCESSING,"读取数据超时!");
} catch (ConnectTimeoutException e) {
logger.info("连接超时:" + e);
throw new FroadException(Constants.RESULT_PROCESSING,"连接超时!");
} catch (IOException e) {
logger.info("发生网络异常:" + e);
throw new FroadException(Constants.RESULT_FAIL,"发生网络异常!");
} catch(Exception e) {
logger.info("发生异常:" + e);
throw new FroadException(Constants.RESULT_FAIL,"发生异常!");
} finally {
postMethod.releaseConnection();
}
return returnStr;
}
@SuppressWarnings("deprecation")
public static byte[] postAsStreamMethod(String reqUrl, String strStream) throws FroadException {
logger.info("regUrl:"+reqUrl);
// 多线程
MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();
HttpClient httpClient = new HttpClient(connectionManager);
// 测试是否超时
HttpConnectionManagerParams managerParams = httpClient.getHttpConnectionManager().getParams();
// 设置连接超时时间(单位毫秒)
managerParams.setConnectionTimeout(200000);
// 设置读数据超时时间(单位毫秒)
managerParams.setSoTimeout(180000);
PostMethod postMethod = new PostMethod(reqUrl);
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
try {
postMethod.setRequestBody(strStream);
long startTime = System.currentTimeMillis();
int status = httpClient.executeMethod(postMethod);
//System.out.println("postMethod=============="+postMethod);
long endTime = System.currentTimeMillis();
logger.info(status+"status,连接用时" + (endTime - startTime) + "ms");
if(status==HttpStatus.SC_OK){
byte[] b=InputStreamToByte(postMethod.getResponseBodyAsStream());
return b;
} else {
logger.info("服务器HTTP响应异常!状态码:"+status);
throw new FroadException(Constants.RESULT_FAIL,"发生Http异常!");
}
} catch (HttpException e) {
logger.info("发生Http异常:" + e);
throw new FroadException(Constants.RESULT_FAIL,"发生Http异常!");
} catch (NoRouteToHostException e) {
logger.info("本机未联网:" + e);
throw new FroadException(Constants.RESULT_FAIL,"本机未联网!");
} catch (ConnectException e) {
logger.info("连接不上服务器:" + e);
throw new FroadException(Constants.RESULT_FAIL,"连接不上服务器!");
} catch (SocketTimeoutException e) {
logger.info("读取数据超时:" + e);
throw new FroadException(Constants.RESULT_PROCESSING,"读取数据超时!");
} catch (ConnectTimeoutException e) {
logger.info("连接超时:" + e);
throw new FroadException(Constants.RESULT_PROCESSING,"连接超时!");
} catch (IOException e) {
logger.info("发生网络异常:" + e);
throw new FroadException(Constants.RESULT_FAIL,"发生网络异常!");
} catch(Exception e) {
logger.info("发生异常:" + e);
throw new FroadException(Constants.RESULT_FAIL,"发生异常!");
} finally {
postMethod.releaseConnection();
}
}
public static byte[] InputStreamToByte(InputStream is) throws IOException {
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bytestream.write(ch);
}
byte imgdata[] = bytestream.toByteArray();
bytestream.close();
return imgdata;
}
}
- 浏览: 269728 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (187)
- spring (10)
- jquery (14)
- js (18)
- java (44)
- freemarker (7)
- 框架介绍 (1)
- tomcat (4)
- oracle (7)
- 喜欢的诗文 (4)
- linux (19)
- nokia (1)
- 那些事 (1)
- apache (3)
- dom4j (1)
- SOA (1)
- 企业架构 (2)
- baidu (1)
- svn (1)
- 测试 (4)
- liunx (0)
- memcahce (1)
- mysql (25)
- maven (4)
- 推广 (1)
- 网络 (1)
- vpn (1)
- drools (1)
- mongodb (1)
- redis (3)
- xlightweb (1)
- wifi (1)
- 学习资料 (1)
- git (1)
- 系统设计 (1)
- springboot (1)
- 自考 (0)
最新评论
-
zuo_qin_bo:
if(df==null){ //这个地方并发多的情况 ...
ThreadLocal解决dateFormat多线程错误 -
kongnan93:
好文!赞一个!!!!
jquery blockUI 居中显示 -
cxc_110928:
如果加上不能出现连续的数字或者字母 如 1234 abcd ...
用java 匹配一个数字和字母密码的正则表达式 -
wzwahl36:
http://www.atool.org/json2javab ...
JSON和JAVA的POJO的相互转换
发表评论
-
折半查找法
2019-06-17 18:11 405public static void main(String[ ... -
js 加密 java解密
2017-12-05 16:27 914https://github.com/noisyle/cr ... -
java工程师成长之路
2017-03-04 17:43 597一、基础篇 1.1 JVM 1.1.1. J ... -
java 启动jar
2017-03-04 15:40 1669#!/bin/sh PRG="$0&qu ... -
ThreadLocal解决dateFormat多线程错误
2016-09-19 17:44 2180出处 http://www.blogjava.net/ki ... -
设计模式
2016-06-02 17:11 520http://www.cnblogs.com/xing9010 ... -
list分页
2016-05-11 09:56 413//分批保存数据 if(null!=aassetO ... -
根据输入执行代码块
2015-05-11 17:25 702/** * f-road.com Inc. * Copyrig ... -
java装饰器模式
2015-03-17 18:00 871java装饰器模式 意图:动态的将责任附加到对象上什么 ... -
java适配器模式
2015-03-17 17:54 656定义:属于结构型模式,其主要作用是将一个类的接口转换成客户 ... -
Java垃圾回收机制
2015-02-04 09:43 750垃圾收集GC(Garbage Coll ... -
jvisualvm结合jstatd进行远程监控
2015-01-27 16:17 865jvisualvm是Jdk自带的,具体点,据说是jdk1 ... -
最佳线程数总结
2015-01-26 11:53 0最佳线程数: 性能压 ... -
线程dump
2015-01-26 11:19 0Java 的线程 线程是指 ... -
几种阻塞队列
2015-01-26 11:11 0转自:http://blog.csdn.net/yydcj/ ... -
线程池的原理及实现
2015-01-26 10:53 7131、线程池简介: ... -
线程同步通信技术-wait notify 用法
2014-10-22 20:58 713/** * * <pre> * 子线程 ... -
Cisco VPN Client 442
2014-10-18 21:17 162典型的Cisco VPN Client 442 错误,之前的 ... -
JDK安装
2014-10-18 15:15 760学习Java 开发的第一步就是构建开发环境,JDK(Java ... -
java中的IO整理
2014-09-14 14:52 827写在前面:本文章基本覆盖了java IO的全部内容,java ...
相关推荐
ANSYS中空隙材料、多孔介质与随机骨料模型的CAD建模插件及应用研究,ansys空隙材料、孔隙材料、多孔介质模型,随机骨料。 CAD建模插件,可导入ansys workbench ,ansys空隙材料; 孔隙材料; 多孔介质模型; 随机骨料; CAD建模插件; 导入ansys workbench,"ANSYS空隙材料多孔介质模型及随机骨料CAD建模插件"
1、文件内容:perl-Image-Info-1.33-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-Image-Info-1.33-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
mysql55-mysql-bench-5.5.37-5.el6.centos.alt.x86_64.rpm
1、文件内容:perl-Module-Implementation-0.06-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-Module-Implementation-0.06-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
Video_587150722718831.mp4
1、文件内容:pcs-snmp-0.9.169-3.el7.centos.3.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pcs-snmp-0.9.169-3.el7.centos.3.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
"GL8碰撞仿真CAE有限元模型文件:141份文档,总大小281M",GL8碰撞cae有限元模型 141 wenjian大小281m ,GL8碰撞; cae有限元模型; 大小281m; 141 wenjian,GL8碰撞CAE有限元模型:大型高精度281M文件
MATLAB高级仿真:储能系统在调峰调频中的联合优化模型——深度探索充放电策略与运行协同优势,MATLAB代码:储能参与调峰调频联合优化模型 关键词:储能 调频 调峰 充放电优化 联合运行 参考文档:《Using Battery Storage for Peak Shaving and Frequency Regulation: Joint Optimization for Superlinear Gains》完全复现 仿真平台:MATLAB+CVX 平台 优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品 主要内容:代码主要做的是考虑储能同时参与调峰以及调频的联合调度模型,现有代码往往仅关注储能在调峰方面的能力,而实际上同时参与调峰调频将超线性的提高储能的收益,在建模方面,构建了考虑电池 化成本、充放电功率约束以及用户负荷不确定性的储能优化模型,整体复现结果和文档一致,该代码具有一定的创新性,适合新手学习以及在此基础上进行拓展,代码质量非常高,保姆级的注释以及人性化的模块子程序 ,关键词:储能; 调峰调频; 联合优化模型; 充放电优化; 电池退化成本; 用户负荷
1、文件内容:perl-IO-Compress-2.061-2.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-IO-Compress-2.061-2.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
1、文件内容:perl-IO-Socket-INET6-2.69-5.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-IO-Socket-INET6-2.69-5.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
电脑调音软件下载是专为汽车音响爱好者和专业人士设计的一款强大工具, 这款软件的主要功能在于帮助用户对车载音频系统进行精确的数字信号处理,以提升音乐播放效果,提供更丰富的听觉体验。
1、文件内容:perl-File-Fetch-0.42-2.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/perl-File-Fetch-0.42-2.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
智慧园区管理系统-活动资源
基于电动汽车灵活性的微网多尺度协调调度模型研究与应用,计及电动汽车灵活性的微网多时间尺度协调调度模型 摘要:构建了含有电动汽车参与的微网 电厂多时间尺度协调优化模型,其中包括日前-日内-实时三阶段,日前阶段由于风光出力具有不确定性,结合风光预测值作初步经济调度;日内阶段,风光出力观测的更加准确,通过调节储能、需求响应等单元对调度方案作进一步调整,避免遭受高额的不平衡惩罚;实时阶段,风光出力的预测结果更准确,为了进一步降低微网与上级电网并网功率的波动性,充分利用电动汽车的灵活性,调度电动汽车的充放电以减少功率波动,兼顾调度的安全性与经济性。 本代码为代码,实现效果见下图 ,电动汽车灵活性; 微网多时间尺度; 协调调度模型; 风光出力; 储能调节; 需求响应; 功率波动性,《微网中电动汽车灵活性的多时间尺度协调调度模型》
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
转正汇报(3).pdf
星落最强稳定版pak(1).zip
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
辛几何模态分解技术:提升时间序列预测精度的SGMD平滑子序列分解法,尚待应用于风电、光伏及负荷预测领域。,辛几何模态分解 SGMD,一种新的时间序列分解技术,通过样本熵得到几个平滑的子序列,可以提高时间序列预测的准确度目前还没有用于风电,光伏,负荷预测,需要的赶紧入手吧不信的可以去知网查查 ,辛几何模态分解;SGMD;时间序列分解技术;样本熵;平滑子序列;预测准确度;风电预测;光伏预测;负荷预测,辛几何模态分解SGMD:提升时间序列预测准确度的新技术