当前位置: 首页 > 面试题库 >

使用Spring RestTemplate访问Https Rest服务

冯阳华
2023-03-14
问题内容

谁能提供给我一个代码示例,以使用Spring Rest模板访问通过https保护的REST服务URL。

我有证书,用户名和密码。服务器端使用了基本身份验证,我想创建一个可以使用提供的证书,用户名和密码(如果需要)连接到该服务器的客户端。


问题答案:
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream(new File(keyStoreFile)),
  keyStorePassword.toCharArray());

SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(
  new SSLContextBuilder()
    .loadTrustMaterial(null, new TrustSelfSignedStrategy())
    .loadKeyMaterial(keyStore, keyStorePassword.toCharArray())
    .build(),
    NoopHostnameVerifier.INSTANCE);

HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(
  socketFactory).build();

ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(
  httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
MyRecord record = restTemplate.getForObject(uri, MyRecord.class);
LOG.debug(record.toString());


 类似资料:
  • 我花了整整一周的时间与Gmail API做斗争,但没有成功。 我的任务: 使用自定义域创建邮箱 使用服务帐户通过Gmail API连接到此邮箱 我所做的: 然而,我总是会遇到一个错误: 我在设置中错过了什么?

  • 我在Eclipse IDE的应用程序中使用Play framework 1.2.5。我需要访问一个使用IBM JAX-RPC构建的web服务。我已经获得了我需要在应用程序中访问的web服务的wsdl文件。 对于普通JavaEE应用程序,我过去常常将WSDL粘贴到我的工作区中,通过右键单击WSDL file=生成文件 我不确定如何使用Play框架访问WSDL。 我想知道: 1)将WSDL文件粘贴到我

  • 我试图建立我的第一个应用程序,从广告词拉竞选数据,但我有一点麻烦。这是我在的地方: 安装了AdWords API NuGet软件包 创建了一个MCC测试帐户和一个AdWords测试帐户 创建了一个AdWords API开发者帐户(在LIVE AdWords帐户上) 在谷歌开发者控制台的我的测试账号中创建了一个项目和一个服务账号 连接我的网络。使用服务帐户OAuth credentials/p12文

  • 我无法获得足够的权限来使用我的应用程序访问Azure Key Vault(而不是通过用户登录)。以下是我的设置: 我已经给了我的名为“keyvault”的应用程序所有的许可。 我的应用程序注册了Azure Active Directory。我已经允许它进入密钥库:

  • 问题内容: 我有一个应该将文件发送到Web服务的程序,该程序需要SSL连接。我运行程序如下: 这很好,但是当我将第一行更改为 我收到以下错误: 因此,似乎该问题与我正在使用的JRE有关,但似乎没有意义的是非IBM JRE可以正常工作,而IBM JRE则不能。有什么想法或建议吗? 问题答案: 如果您的非IBM jre是sun,那么它已经附带了SSL类实现。 看来IBM jre根本不包含SSL实现类。

  • 与此处的问题类似,仅通过管理员授权访问Office 365用户邮件数据 目前,我正在实现一个应用程序,它将使用服务号访问Office e365上的一组邮箱。 有一篇MSDN博客文章宣布oauth支持Office 365http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using-oauth2-to-access-calendar-cont