通过HTTP访问接口,工具方法

/*
 *  通过HTTP访问接口,
 * 详情,返回一个Map对象
 */
public static Map<String,Object> callByHTTP(String URL,String data,String RequestMethod,boolean encrypt) throws Exception{
		StringBuffer returnData=new StringBuffer();
		InputStream in = null;
		//网络连接
		logger.info("url:url:"+URL);
		try {
			 URL url = new URL(URL);
			 HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
			 conn.setDoOutput(true);  
		     conn.setUseCaches(false);  
		     conn.setRequestMethod(RequestMethod);
		     conn.setRequestProperty("Cache-Control", "no-cache");  
		     conn.setRequestProperty("Charsert", "UTF-8");
		     conn.setConnectTimeout(30000);
		     conn.setReadTimeout(30000);
		     conn.connect();
		     if(data!=null&&!data.equals("")){
		    	OutputStream outputStream = conn.getOutputStream();
				outputStream.write(data.getBytes("UTF-8"));
				outputStream.flush();
				outputStream.close();	
		     }
		     in = conn.getInputStream();
		} catch (Exception e) {
			e.printStackTrace();
			logger.error("接口连接超时!");
		} 
		//解析数据
		try{  
			if (in != null) {
				BufferedReader bufferIn = new BufferedReader(new InputStreamReader(in,"UTF-8"));
				String temp=null;
				while((temp=bufferIn.readLine())!=null){
					returnData.append(temp); 
				}
				bufferIn.close();
				in.close();
				if (encrypt) {
					logger.info(returnData.toString());
					return  (Map<String,Object>)JSON.parse(DesEncrypt.getInstance().decrypt(returnData.toString()));
				} else {
					logger.info(returnData.toString());
					return  (Map<String,Object>)JSON.parse(returnData.toString());
				}
			}
		} catch (ApplicationException e) {
			e.printStackTrace();
			logger.error("系统接口运行失败!");
			throw new ApplicationException();
		}
		logger.error("系统接口连接失败!");
		return null;
	}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏岑玉海

Carbondata源码系列(一)文件生成过程

在滴滴的两年一直在加班,人也变懒了,就很少再写博客了,最近在进行Carbondata和hive集成方面的工作,于是乎需要对Carbondata进行深入的研究。 ...

6406
来自专栏一名合格java开发的自我修养

jdbc操作根据bean类自动组装sql,天啦,我感觉我实现了hibernate

场景:需要将从ODPS数仓中计算得到的大额可疑交易信息导入到业务系统的mysql中供业务系统审核。但是本系统是开放是为了产品化,要保证不同环境的可移植性,同时同...

1952
来自专栏zhisheng

渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上)

上篇文章写了 ElasticSearch 源码解析 —— 环境搭建 ,其中里面说了启动 打开 server 模块下的 Elasticsearch 类:org.e...

1381
来自专栏听雨堂

Android新手之旅(4) 通过HTTP访问web

1、访问web manifest中应该增加一个 <uses-permission android:name="android.permission.INTER...

2089
来自专栏函数式编程语言及工具

Akka(13): 分布式运算:Cluster-Sharding-运算的集群分片

    通过上篇关于Cluster-Singleton的介绍,我们了解了Akka为分布式程序提供的编程支持:基于消息驱动的运算模式特别适合分布式程序编程,我们不...

4248
来自专栏函数式编程语言及工具

ScalaPB(2): 在scala中用gRPC实现微服务

2923
来自专栏不会写文章的程序员不是好厨师

Spring源码初探-IOC(5)-ApplicationContext功能扩展及其扩展点

前面几篇关于Spring的文章简单阐述了使用BeanFactory作为容器时bean的初始化过程。然而在实际使用中,我们并不会直接接触和编码BeanFactor...

1182
来自专栏zhisheng

看透 Spring MVC 源代码分析与实践 —— Spring MVC 组件分析

组件概览 HandlerMapping 根据 request 找到对应的处理器 Handler 和 Interceptors。内部只有一个方法 Handler...

2958
来自专栏跟着阿笨一起玩NET

以读取博客园随笔备份为例 将xml 序列化成json,再序列化成对象

资源下载:http://files.cnblogs.com/codealone/ConsoleApplication2.zip

1041
来自专栏mukekeheart的iOS之旅

Bug修复问题

采用下面的代码,访问网页:http://www.weather.com.cn/data/cityinfo/101010100.html,想读取下图中红框中的内容...

2737

扫码关注云+社区

领取腾讯云代金券