/**
* 心得:一定要关闭流,inStream
* 那也就是用变量接收文件中的值
* @author Administrator
*
*/
public class HttpClientDemo {
private String trustStore = "证书名";
private String keyStorePwd = "pwd";
public void start(){
InputStream inStream = null;
try {
//加载配置文件
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("路径/rest.properties");
inStream = new BufferedInputStream(fis);
prop.load(inStream);
//加载安全证书
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(ClassLoader.getSystemResourceAsStream(trustStore),keyStorePwd.toCharArray());
//SSL:一种保证网络上的恋歌节点进行安全通信的协议
//连接采用tls还是ssl的安全方式
SSLContext sslContext = SSLContext.getInstance("TLS");
X509TrustManager tm = new X509TrustManager(){
@Override
public void checkClientTrusted(X509Certificate[] arg0,
String arg1) throws CertificateException {}
@Override
public void checkServerTrusted(X509Certificate[] arg0,
String arg1) throws CertificateException {}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks,"pwd".toCharArray());
sslContext.init(kmf.getKeyManagers(), new TrustManager[]{tm}, new SecureRandom());
SSLSocketFactory socketFactory = new SSLSocketFactory(sslContext,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
String url = String.format("https://%s:%s%s", prop.getProperty("ip"),
prop.getProperty("port"),
prop.getProperty("url"));
JSONObject json = new JSONObject();
json.put("param",prop.getProperty("param"));
HttpClient httpClient = new DefaultHttpClient();
//443 https的默认端口号
httpClient.getConnectionManager().getSchemeRegistry().registry().register(new Scheme("https",443,socketFactory));
HttpPost hp = new HttpPost(url);
hp.setHeader("Context-Type","application/json;charset=UTF-8");
hp.setHeader("Accept","application/json;charset=UTF-8");
hp.setEntity(new StringEntity(json.toString()));
HttpResponse httpResponse = httpClient.execute(hp);
HttpEntity entity = hp.getEntity();
httpResponse.getStatusLine().getStatusCode();
EntityUtils.toString(entity,"UTF-8");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (KeyStoreException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (CertificateException e) {
e.printStackTrace();
} catch (UnrecoverableKeyException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
}
finally{
if(null != inStream){
inStream.close();
inStream = null;
}
}
}
}
get,put,delete,post等方法,使用同上
代码中用的证书下次再写,怎么查看证书,内容
分享到:
相关推荐
泛微9.0 REST接口调用是一个用于与泛微协同办公系统进行交互的重要技术,它允许开发者通过HTTP请求来执行各种操作,如注册、获取访问令牌、创建流程以及实现单点登录。下面是这些知识点的详细说明: 1. **注册接口*...
存储REST接口调用使用说明及范例-xiaoqiang1 以下是对存储REST接口调用使用说明及范例-xiaoqiang1的知识点总结: 一、Azure REST接口调用概述 Azure提供了各种主流语言的SDK,以适应不同技术需求的客户。这些SDK...
#### 三、Java调用REST接口的方法 ##### 3.1 使用Apache HttpClient库 Apache HttpClient是一个用于Java开发者的高效、最新的HTTP客户端库,可以用来构建HTTP客户端应用,包括简单的GET请求以及复杂的POST请求。 ...
CDN REST接口调用及说明-hexiaoqiang1
WeClient,一个简单的声明式Rest接口调用组件,类似OpenFeign,只需要两个注解,让开发人员对RestTemplate等客户端的API透明化,不再需要关心调用接口的实现细节,可以像调用本地接口一样调用其它微服务或第三方服务...
REST接口调用的基本步骤包括: 1. 创建HTTP请求:根据接口的URL、HTTP方法(GET、POST等)创建请求。 2. 设置请求头:比如设置Content-Type(决定发送的数据格式,如application/json或application/x-...
元数据管理模块使用 REST 风格的 Web 服务作为元数据操作的外部交互接口,服务端提供唯一的资源定位地址 URI 供客户端调用。客户端通过 HTTP 方法实现对资源的唯一操作,HTTP 方法主要包括 GET、PUT、POST 和 DELETE...
总的来说,"动态发布REST接口及服务调用"涵盖了使用Jetty和Jersey在Java中构建RESTful服务的基本流程,从接口的定义、发布到调用的全过程。通过这种方式,开发者可以快速地开发和测试REST服务,为分布式系统提供灵活...
这篇博客文章《REST调用有参数接口》可能详细介绍了如何在Java环境中使用RESTful API进行有参数的请求。 首先,RESTful API的设计原则是使用HTTP方法(GET、POST、PUT、DELETE等)来表示资源的不同操作。当需要传递...
### Java调用HTTP REST接口详解 #### 一、引言 在现代软件开发中,RESTful API已经成为一种非常流行的架构风格。它不仅简洁而且高效,适用于各种规模的应用程序和服务之间的通信。本文将详细介绍如何使用Java语言...
- 使用ASP.NET MVC或ASP.NET Web API框架,定义控制器类和操作方法,对应REST接口。 - 创建路由配置,将URL映射到相应的处理方法。 - 操作方法返回类型可以是JSON(JavaScript Object Notation),用于传输轻量级...
**REST接口测试工具——Postman** 在现代Web开发中,RESTful API扮演着至关重要的角色,它们是应用程序之间通信的桥梁。为了确保这些接口的正常运行和高效性能,开发者需要进行接口测试。Postman,作为一款强大的...
相信大家在调用rest webservice通常使用httpclient.该示例代码是使用httpconnection的形式,以POST和GET两种方式提交调用REST WebService。在项目中一直使用的工具类,分享给大家
在Kettle中,REST接口提供了一种灵活的方式与外部系统进行通信,例如,发送和接收JSON数据,执行各种操作。本教程将深入探讨如何使用Kettle与RESTful服务进行交互。 首先,我们要理解REST(Representational State ...
在IT行业中,企业级应用的集成与自动化是提高效率的关键环节。本文将深入探讨如何在“致远OA”(ZhiYuan Office Automation)系统中通过Java开发REST...同时,对API文档的深入理解和灵活运用是确保接口调用成功的关键。
### NC63供外部系统接口调用案例 #### 关于NC63及其接口实现方式 **NC63**是用友公司为企业级用户提供的一款ERP软件,主要服务于大中型企业,旨在构建多集团企业的信息化核心。它与U9、U8等其他产品线一起构成了...
从压缩包子文件的文件名 "SpringBoot框架微服务rest接口调用封装 - 杨富波的博客.html" 和 "SpringBoot框架微服务rest接口调用封装 - 杨富波的博客_files" 我们可以推断,这可能是一个博客文章的HTML源文件及其相关...
### CAS Restful接口调用详解 #### 一、CAS简介 CAS(Central Authentication Service)是一种开源的单点登录协议和服务实现。它旨在减轻单一Web应用的登录流程,并为多个服务提供一个集中式的认证机制。CAS支持...
该平台能实现基于ws的聊天室,可以将聊天的信息调用rest api存储到数据库,可以通过网页访问该平台提供的rest api后再进行ws的相关操作,也就是说把ws的聊天服务端与rest的调用以及rest的网站发布整合到了一起。...
H3C CAS的REST API设计简洁,易于理解和使用,使得开发者可以使用常见的编程语言如Python、Java、JavaScript等来调用这些接口,实现自动化管理任务。 在使用H3C CAS REST API时,首先需要了解API的基本结构和请求...