先检查java环境变量
JAVA_HOME JRE_HOME Path加上 %JAVA_HOME%\bin;%JRE_HOME%\bin
如果你构建了一个https协议的站点,而此站点的安全证书并不是合法的第三方证书颁发机构所签发,那么你用httpclient去访问此站点会报如下错误
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
产生原因是jdk的证书库里并没有将该站点的证书作为受信任的安全证书。
解决方法是导该站点的证书,将此证书导入到java的信任证书库中。
要注意的是,在win7或更高的系统中,运行一定要以管理员身份运行CMD,Mac os 要用sudo -i 命令切换为 root用户,否则会报以下错
keytool错误: java.io.FileNotFoundException:
把证书导入java的cacerts证书库的步骤:
第一步:IE打开网站,把要导入java证书库的证书下载
在该网页安全警报弹出窗口上查看证书--详细信息--复制到文件
会弹出一个证书导出向导对话框,按提示一直下一步直到完成。
我把证书保存在C盘,名字为NEXT_CertKey.cer 或是 xxxx.der。
第二步:将上面导出的证书导入java中的cacerts证书库
windows cmd进入C:\Program Files\Java\jdk1.5.0_06\bin 目录
敲入如下命令回车执行
keytool -import -alias cacerts -keystore C:\Program Files\Java\jdk1.5.0_06\jre\lib\security\cacerts -file C:\NEXT_CertKey.cer -trustcacerts
此时命令行会提示你输入cacerts证书库密码,
java中cacerts证书库默认密码为changeit,
Y确认即可,OK,认证已添加至keystore。
相关推荐
在Java编程中,`javax.net.ssl.SSLHandshakeException` 是一个常见的错误,通常发生在进行安全套接层(SSL)或传输层安全(TLS)协议握手时出现问题。这个异常通常是由于客户端和服务器之间的证书不匹配、信任锚点...
然而,当你遇到“javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair”的错误时,这意味着在建立SSL/TLS连接时,Diffie-Hellman(DH)密钥交换算法遇到了问题。DH是一种非对称...
HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP的安全协议,它通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)来加密通信,以确保数据传输的安全性。然而,对于Android 5.0以下的设备,...
它通常使用HTTP客户端库(如Apache HttpClient或OkHttp)来发送请求并接收响应。 2. **Site**:配置爬虫的站点信息,如基础URL、编码格式、延迟时间等,帮助爬虫更好地遵循网站的Robots协议。 3. **PageProcessor*...
C#使用HttpClient需要 using System.Net.Http; 但是Windows系统里面好像又没有自带相应的dll文件,这是这个命名空间的System.Net.Http.dll。 编译的时候 csc /r:System.Net.Http.dll HttpClientTest.cs 这样使用。
"java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...
在实际开发中,为了管理`HttpClient`对象,我们通常会采用依赖注入或者单例模式,避免频繁创建和销毁`HttpClient`实例,因为这可能导致过多的TCP连接创建,从而影响性能。 总的来说,`System.Net.Http.dll`是C#进行...
在.NET框架中,`System.Net.Http.Formatting`是一个关键的组件,主要用于处理HTTP客户端的输入和输出数据格式化。...通过这个压缩包,开发者可以快速解决`HttpClient`缺少`PostAsJsonAsync`方法的问题,提升开发效率。
在标题和描述中提到的"Java中Httpclient需要的jar包(httpclient.jar,httpcore.jar及commons-logging.jar)",是使用HttpClient库时必须包含的三个关键依赖文件。 首先,`httpclient.jar`是Apache HttpClient的核心库...
3. **在Java代码中配置TrustStore**:在Java代码中,你需要设置`javax.net.ssl.trustStore`和`javax.net.ssl.trustStorePassword`系统属性,指向你的TrustStore文件和密码: ```java System.setProperty("javax...
5. **HttpClientFactory**:自.NET Core 2.1起,`HttpClientFactory`引入了更有效的管理策略,解决了长时间运行应用程序中可能出现的连接泄漏问题。通过依赖注入,开发者可以方便地创建和配置`HttpClient`实例,同时...
但有时在测试或特定场景下,我们可能需要绕过这一验证,例如自签名证书的服务器或开发环境。 HTTPClient 4.5中提供了这样的功能,可以让我们自定义SSL上下文,从而绕过默认的证书验证。以下是如何操作的步骤: 1. ...
在Java中,我们可以使用多种库来实现HTTP通信,其中包括`com.sun.net.httpserver`包,这是一个内置的轻量级HTTP服务器,适用于测试、原型设计以及简单的应用。本示例将详细介绍如何使用`com.sun.net.httpserver`包...
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396) at org.codehaus.xfire.transport.http.CommonsHttpMessageSender.send(CommonsHttpMessageSender.java:369) at org.codehaus....
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....
1. `commons-beanutils-1.8.0.jar`: Apache Commons BeanUtils库提供了对Java Beans属性的简单、灵活的访问方法。在HttpClient中,虽然它主要用于处理Java对象的属性,但也能辅助处理HTTP请求或响应中的数据转换。 ...
HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("http://example.com"); string responseBody = await response.Content.ReadAsStringAsync(); ``` 这段代码创建了...
赠送jar包:httpclient-4.5.13.jar; 赠送原API文档:httpclient-4.5.13-javadoc.jar; 赠送源代码:httpclient-4.5.13-sources.jar; 赠送Maven依赖信息文件:httpclient-4.5.13.pom; 包含翻译后的API文档:...