范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

使用commonshttpclient模拟实现http请求

  在开发项目时,经常需要对接第三方平台接口,而且是后台触发请求,比如对接短信平台接口、语音中心平台接口、支付平台接口等等,可以引入commons-httpclient方式进行开发。
  1、在pom中添加依赖 3.4 3.1      commons-httpclient     commons-httpclient     ${http.client.version}    	org.apache.commons 	commons-lang3 	${org.apache.commons.lang3} 
  2、POST请求方法/**  * 无 header 参数  * @param url  * @param param  * @param charset  * @param contentType  * @return  */ public static String sendPost(String url, String param, String charset, String contentType) {     String reqCharset = StringUtility.isEmpty(charset) ? CHARSET_UTF8 : charset;     String type = StringUtility.isEmpty(contentType) ? CONTENT_TYPE_JSON : contentType;      String result = StringUtils.EMPTY;     PostMethod method = null;     try {         HttpClient client = new HttpClient();         //设置连接超时时间为30秒(连接初始化时间)         client.getHttpConnectionManager().getParams().setConnectionTimeout(30000);          //带参数的那个请求的访问串         method = new PostMethod(url);         // 发送请求         //指定传送字符集为UTF-8格式         RequestEntity requestEntity = new StringRequestEntity(param, type, reqCharset);         method.setRequestEntity(requestEntity);         int statusCode = client.executeMethod(method);         if (statusCode == 200) {             //解析返回支付Json数据             result = method.getResponseBodyAsString();         }          // 关闭连接         client.getHttpConnectionManager().closeIdleConnections(1);         return result;     } catch (Exception e) {         return StringUtils.EMPTY;     } finally {         if (method != null) {             // 释放连接             method.releaseConnection();         }     } }/**  * 带 header 参数  * @param url  * @param param  * @param map  * @param charset  * @param contentType  * @return  */ public static String sendHeaderPost(String url, String param, Map map, String charset, String contentType) {     String reqCharset = StringUtility.isEmpty(charset) ? CHARSET_UTF8 : charset;     String type = StringUtility.isEmpty(contentType) ? CONTENT_TYPE_JSON : contentType;      String result = StringUtils.EMPTY;     PostMethod method = null;     try {         HttpClient client = new HttpClient();         // 设置连接超时时间为30秒(连接初始化时间)         client.getHttpConnectionManager().getParams().setConnectionTimeout(30000);          // 带参数的那个请求的访问串         method = new PostMethod(url);         // 设置消息头         if (CollectionUtility.isNotEmpty(map)) {             for (Map.Entry entry : map.entrySet()) {                 method.addRequestHeader(entry.getKey(), entry.getValue());             }         }          // 发送请求 指定传送字符集为UTF-8格式         RequestEntity requestEntity = new StringRequestEntity(param, type, reqCharset);         method.setRequestEntity(requestEntity);         int statusCode = client.executeMethod(method);         if (statusCode == 200) {             //解析返回支付Json数据             result = method.getResponseBodyAsString();         }          // 关闭连接         client.getHttpConnectionManager().closeIdleConnections(1);         return result;     } catch (Exception e) {         return StringUtils.EMPTY;     } finally {         if (method != null) {             // 释放连接             method.releaseConnection();         }     } }
  3、完整的工具类import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.commons.lang.StringUtils;  import java.util.Map;  /**  * http调用POST请求  */ public class HttpClientUtility {      static final String CHARSET_UTF8 = "utf-8";     static final String CONTENT_TYPE_JSON = "application/json";      /**      * 默认编码utf-8,content-type为application/json      * @param url      * @param param      * @return      */     public static String sendPost(String url, String param) {         return sendPost(url, param, CHARSET_UTF8, CONTENT_TYPE_JSON);     }      /**      * 默认编码utf-8 指定content-type为application/json      * @param url      * @param param      * @param contentType      * @return      */     public static String sendPost(String url, String param, String contentType) {         String type = StringUtility.isEmpty(contentType) ? CONTENT_TYPE_JSON : contentType;         return sendPost(url, param, CHARSET_UTF8, type);     }      /**      * 指定header参数      * @param url      * @param param      * @param map      * @param contentType      * @return      */     public static String sendHeaderPost(String url, String param, Map map, String contentType) {         String type = StringUtility.isNotEmpty(contentType) ? CONTENT_TYPE_JSON : contentType;         return sendHeaderPost(url, param, map, CHARSET_UTF8, type);     }      /**      * 无 header 参数      * @param url      * @param param      * @param charset      * @param contentType      * @return      */     public static String sendPost(String url, String param, String charset, String contentType) {         String reqCharset = StringUtility.isEmpty(charset) ? CHARSET_UTF8 : charset;         String type = StringUtility.isEmpty(contentType) ? CONTENT_TYPE_JSON : contentType;          String result = StringUtils.EMPTY;         PostMethod method = null;         try {             HttpClient client = new HttpClient();             //设置连接超时时间为30秒(连接初始化时间)             client.getHttpConnectionManager().getParams().setConnectionTimeout(30000);              //带参数的那个请求的访问串             method = new PostMethod(url);             // 发送请求             //指定传送字符集为UTF-8格式             RequestEntity requestEntity = new StringRequestEntity(param, type, reqCharset);             method.setRequestEntity(requestEntity);             int statusCode = client.executeMethod(method);             if (statusCode == 200) {                 //解析返回支付Json数据                 result = method.getResponseBodyAsString();             }              // 关闭连接             client.getHttpConnectionManager().closeIdleConnections(1);             return result;         } catch (Exception e) {             return StringUtils.EMPTY;         } finally {             if (method != null) {                 // 释放连接                 method.releaseConnection();             }         }     }      /**      * 带 header 参数      * @param url      * @param param      * @param map      * @param charset      * @param contentType      * @return      */     public static String sendHeaderPost(String url, String param, Map map, String charset, String contentType) {         String reqCharset = StringUtility.isEmpty(charset) ? CHARSET_UTF8 : charset;         String type = StringUtility.isEmpty(contentType) ? CONTENT_TYPE_JSON : contentType;          String result = StringUtils.EMPTY;         PostMethod method = null;         try {             HttpClient client = new HttpClient();             // 设置连接超时时间为30秒(连接初始化时间)             client.getHttpConnectionManager().getParams().setConnectionTimeout(30000);              // 带参数的那个请求的访问串             method = new PostMethod(url);             // 设置消息头             if (CollectionUtility.isNotEmpty(map)) {                 for (Map.Entry entry : map.entrySet()) {                     method.addRequestHeader(entry.getKey(), entry.getValue());                 }             }              // 发送请求 指定传送字符集为UTF-8格式             RequestEntity requestEntity = new StringRequestEntity(param, type, reqCharset);             method.setRequestEntity(requestEntity);             int statusCode = client.executeMethod(method);             if (statusCode == 200) {                 //解析返回支付Json数据                 result = method.getResponseBodyAsString();             }              // 关闭连接             client.getHttpConnectionManager().closeIdleConnections(1);             return result;         } catch (Exception e) {             return StringUtils.EMPTY;         } finally {             if (method != null) {                 // 释放连接                 method.releaseConnection();             }         }     } }

升级win11后显示器四周有1mm黑边,怎么解决?这个貌似是液晶屏的封装边吧,应该本来就有的,可能是你一直没有注意,一般的显示器都有这个黑边。如果真的确定之前没有那应该是分辨率没有正确设置对,或者是显卡的驱动没有正确安装好,最后一为什么以前听卡带可以听一整天,但是现在听无损,没几首就腻了?一是过去的歌曲比较好听,而那时磁带录音机随身听又比较稀罕,省钱也得买一台赶时髦啊!于是怎么玩都不腻,虽然磁带机的音质不怎么样,那种情形可以说毫不亚于现在的人玩手机。那时磁带不好买,如何评价云闪付,它能超越支付宝吗?首先普及一下云闪付的背景,云闪付是中国银联联合各大银行推出的一款支付软件,前身是银联钱包。2017年底,云闪付正式上线,目的就是在火爆的移动支付领域能有一席之地,特别是2018年下比腾讯待遇还要好,员工平均年收入可达115万,近一半学历达硕士长期以来,很多人都觉得互联网行业是一个非常赚钱的行业。比如国内的阿里巴巴字节跳动百度腾讯等每年都成为了各大高校毕业生挤破头都想去工作的地方。而互联网公司内部为了抢夺优秀的毕业生资源骁龙660处理器和骁龙845处理器差距到底有多大?谢谢邀请,自从小米MIX2s搭配高通骁龙845,OPPOR15vivoX21搭配骁龙660处理器,但是价格相差不多,很多消费者就认为这两款处理器可能相差不大,但是其实对于高通骁龙8Ipfs分布式存储如何工作?它的网络发展又有几个阶段呢?Ipfs是一个分布式存储网络,它最重要的应用是存储。只是为了把某个文件永久地保存下来还不够,并且当有需要的时候,还能把这些内容再重新找出来。存储和检索这两个的集合才构成了IPFS应买一部iPhone13Pro要工作多久?瑞士只要4天你呢?手机中国新闻iPhone13系列开启预定已有一段时间,9月24日,该机将正式开售。我们先来看看iPhone13系列的价格,以更受欢迎的iPhone13Pro为例,该机的起售价为79手机未来会被什么东西取代?我觉得这个不能用取代来说,只会以形态改变来取代。手机现在已经成为一种个人智能终端。且形态在不断的发生了改变有最初的小屏幕变为现在的大屏幕。我最初的键盘输入。变为现在的触摸屏。逐渐加预算充足不差钱!目前这4部智能手机最值得买,内行人的建议预算充足不差钱!目前这4部智能手机最值得买,内行人的建议!第一部iPhone13Pro说到苹果手机,大家去年一直希望iPhone机型能够支持5G技术,今年则是能够支持120Hz高刷鸿蒙超出预期,谷歌的计划反被戳穿,难怪华为8年前就在自研众所周知,在移动系统行业当中,苹果的IOS系统和谷歌的安卓系统是目前行业中的翘首,两大系统经过长年的发展横扫了很多老牌产品,比如诺基亚的塞班,微软的WP,以及号称安全度最高的黑莓等马斯克的星链计划和中国的5g相比哪个更快?世界上没有哪个伟大的企业能够和马斯克相比,他的牛皮吹得太大了,只有拖尸啦的水军才能和他一吹的实力,从来没有实现过,。一个是拓宽广度一个是拓宽深度,没法直接比哪个网络更开放?哪个更便
让我们带您了解各种商用洗碗机以商用洗碗机的分类为标准,推荐商用洗碗机的常见类型如下。揭盖式洗碗机清洗方法是将餐具装筐后放入洗碗机中,用高压热水喷淋清洗消毒。每次洗涤1015筐,约500个餐具小时,洗涤时间1分巴菲特的三顿失败的午餐,受伤的只是巴菲特吗?图片来自网络,侵删众所周知,巴菲特的午餐(跟巴菲特共进午餐)绝对是一种奢侈品,中国则是奢侈品消费大国。但为什么网上有篇文章会说巴菲特宣布跟三个中国人吃饭后,我永远不跟中国人吃饭了?我们的饮食是不是比商纣王强多了?是我在知乎的回答。跑个题。不说饮食,昨天,我一个普通人在十八楼的办公室拍的。纣王的摘星楼能有多高?国外有人说,现代人(你我这样的普通人)在物质生活上的幸福指数,高于几百年前的教皇他唉!雷军的一个字文案最近,雷军的一个字(语气词)唉成为热词。这说明,大品牌的文案,怎么做都好。(小马宋也这么说过)有一个广为流传的关于鲁迅的段子鲁迅晚安!语文老师晚安中晚字点明了时间,令人联想到天色已商用洗碗机的选择要注意哪些方面洗碗工目前很难招到。使用洗碗机后,餐具能及时清洗干净,立即投入使用。一般只需1人。过去需要5个人手动洗碗,现在只需要23个人在过去,一般需要23个小时,以手动洗碗。现在完成同样的工食堂洗碗机的设备特点食堂洗碗机能保证按时洗碗的质量。全自动洗碗机干净卫生。它不仅节省了人工成本,而且值得信赖。食堂的洗碗机快速清洗而且没有残留,可安全使用餐具,防止细菌交叉感染。食堂的洗碗机采用食品级食堂洗碗机的操作规程学校食堂宾馆饭店餐饮连锁店中央厨房厨房等由于食客众多,使用餐具数量大,给洗碗工洗涤餐具带来很大的工作量,用洗碗机的工作量也很大。让我们了解一下食堂的洗碗机安全操作规程。检查机器运转餐饮业为什么使用商用洗碗机?1。提高洗涤速度酒店洗碗机的使用时间明显缩短,降低了员工的劳动强度和成本。2。降低损伤率餐馆里餐具的使用量一直在增加,机器洗碗不像人工洗碗那样磕磕碰碰,因此破损率也低。3。减少员工自动洗碗机清洗餐具时水温的重要性为了省时省电,清洁餐具,应根据餐具的数量和餐具的脏污程序选择水温。洗碗机的控制机构一般包括程序控制器和选择开关。常温范围更适合人口较少的家庭,因为平时餐具用量不多,餐具上的油渍也可商用洗碗机的分类及特点洗碗机是一种能自动清洗碗筷盘子碟子刀叉等餐具的设备。市场上的自动洗碗机可分为家用和商用两大类,家用自动洗碗机只适用于家庭,主要是橱柜台式机水槽一体机和一体机。商用洗碗机按结构可分为农村1家人随手种一分地,3个月不买菜,比城里买的好吃几倍随着时间的推移,眼看现在即将进入1月份了,2个多月前种的菜慢慢也快要过季了,只能在它最后的时光里趁热吃了。蜜蜂正在采蜜每年的10月份,都会有不少喜欢吃自己种的菜的农人家在地里田里菜