我正在尝试使用HttpClient从我的代码访问网站:
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpget = new HttpGet("https://www.datamed.org/search.php?query=gene&searchtype=data");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpget, responseHandler);
这是我得到的错误:
Exception in thread "main" javax.net.ssl.SSLException: hostname in certificate didn't match: <www.datamed.org> != <ucrexdc.ucsd.edu> OR <ucrexdc.ucsd.edu>
我从浏览器检查了证书,它似乎是正确的,具有正确的名称。不确定它从哪里拾取ucrexdc.ucsd.edu
。
如果我使用代理,代码确实有效。在StackOverflow上遇到了很多类似的问题,但在大多数情况下,服务器处于用户的控制之下。就我而言,这是一个已经存在的网站。我只有这个网站才有这个问题。
会不会是我的环境有问题?
更新:
我发现两个网站(datamed.org
和ucrexdc.ucsd.edu
)都有相同的IP,169.228.51.21
。这可能是个问题,为什么浏览器没有这个问题?
更新2:
我正在使用apache超文本传输协议-Client 4.3.1
,
当我更新到4.4.1
时,它被解决了。问题最有可能与SNI有关。
HttpClient提供了两种主机名验证实现。
默认情况下,HttpClient使用DefaultHostnameVerifier实现。您可以尝试不同的主机名验证器实现。
SSLContext sslContext = SSLContexts.createSystemDefault();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
HttpClient httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslsf).build();
我想检查一堆URL是否正常工作。因此,我编写了一些代码(如下所示)来实现这一点。它适用于像谷歌这样的网站。通用域名格式。当我把它应用到我的场景中时,它失败了。 我正在登录虚拟机。从这个虚拟机,我可以在浏览器中打开所需的URL。当我尝试检查是否可以用代码连接到URL时,它失败了。我的代码从文件中获取的URL是正确的,可以在浏览器上运行。因此,排除了URL中的错误。 我的服务器URL如下所示- 如何调
即使我的帐户可以访问SSMS中的db,并具有sysadmin权限。 检查SQL日志,每当登录失败时,我都可以看到这条消息: 我尝试向和添加,但没有什么不同 但我也试过 以同样的结果
问题内容: 因此,从pyspark运行时,我会输入(不指定任何上下文): ..而且效果很好。 但是,当我从运行脚本时,例如 我把以下内容 但这给我一个错误 pyspark.sql.utils.AnalysisException:u’未找到表:experian_int_openings_latest_orc;’ 所以它没有看到我的桌子。 我究竟做错了什么?请帮忙 PS Spark版本在Amazon
问题内容: 我是Hive,MapReduce和Hadoop的新手。我正在使用Putty连接到配置单元表并访问表中的记录。因此,我要做的是- 打开Putty并输入主机名-然后单击。然后我输入了用户名和密码,然后输入了一些命令来访问Hive sql。以下是我的工作清单 所以我的问题是 还有其他方法可以在任何Sql客户端(例如Sql Developer或Squirel SQL Client)中执行相同的
我知道这个问题以前已经讨论过,但我觉得我的问题有点不同。 我正在试图弄清楚如何使我能够通过自我管理的AWS弹性搜索访问吉巴纳,我有在我的AWS帐户。 可能是我要说的是不准确的或者完全是一派胡言。我对整个AWS VPC wise部分和麋鹿卡死相当新手。 体系结构:这里是“体系结构”: 我有一个VPC。 在VPC内I有几个子网。 每个服务器使用在服务器本身上运行的日志存储将其数据发送到弹性搜索。为了简
我有一个Vue单页应用程序(尚未部署),它调用一个Azure函数来获取一些数据。Azure函数具有管理员级别的安全性,所以我需要主密钥来调用它。 如果相关,我希望能够在本地测试时从我的网站访问密钥库,也希望在部署时能够访问密钥库(我目前不知道在哪里,但我很可能会在Azure上部署我的网站)。另外,我更希望不必编写服务器端代码,因为我正在编写一个SPA 所以...我如何从vue网站(又名浏览器中运行