- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚开始接触 API(官方和非官方),我正在使用一个名为 JavaSnap 的 API。 。我一直在搞乱示例代码的非常基本的实现,但遇到了错误。这是非常基本的代码:
Snapchat snapchat = Snapchat.login("xxxx", "xxxxx");
首先,我遇到了大量的 ClassNotFound 错误,并且不得不继续下载 apache 模块(commons、httpcomponents 等)以允许程序继续运行,但是作为类文件,这意味着我无法立即看到我需要哪些模块。需要下载。因此,如果有人想告诉我我做的事情有多么错误,请随意。
无论如何,现在已经清除了所有 ClassNotFound 异常(我希望),我收到以下异常:
com.mashape.unirest.http.exceptions.UnirestException: javax.net.ssl.SSLPeerUnverifiedException: Host name 'feelinsonice-hrd.appspot.com' does not match the certificate subject provided by the peer (CN=*.appspot.com, O=Google Inc, L=Mountain View, ST=California, C=US)
at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:146)
at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)
at com.habosa.javasnap.Snapchat.requestJson(Snapchat.java:953)
at com.habosa.javasnap.Snapchat.login(Snapchat.java:160)
at Tester.go(Tester.java:21)
据我了解,这是因为我需要启用信任所有证书,但是要做到这一点,我相信我需要将 HostNameVerifiers 与 SSLSocketFactorys 一起使用,但我不能真正开始搞乱这个,因为我只拥有 JavaSnap API 的源代码,并在堆栈中跟踪错误,可供我编辑的最新方法是:
private static HttpResponse<JsonNode> requestJson(String path, Map<String, Object> params, File file) throws UnirestException {
MultipartBody req = prepareRequest(path, params, file);
// Execute and return response as JSON
HttpResponse<JsonNode> resp = req.asJson();
// Record
lastRequestPath = path;
lastResponse = resp;
lastResponseBodyClass = JsonNode.class;
return resp;
我的问题是,我的想法真的正确吗?
如果我是,我怎样才能实现消除此错误/信任证书的目标?如果我不是,那么实际上问题是什么?
非常感谢
最佳答案
我回答这个老问题是为了记住我的搜索证书错误解决方案是几个地方的组合
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import javax.net.ssl.SSLContext;
import javax.security.cert.CertificateException;
import javax.security.cert.X509Certificate;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
public class XXX {
private static HttpClient unsafeHttpClient;
static {
try {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustSelfSignedStrategy() {
public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
return true;
}
}).build();
unsafeHttpClient = HttpClients.custom().setSSLContext(sslContext)
.setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
} catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {
e.printStackTrace();
}
}
public static HttpClient getClient() {
return unsafeHttpClient;
}
public static void main(String[] args) {
try {
HttpClient creepyClient = RestUnirestClient.getClient();
Unirest.setHttpClient(creepyClient);
HttpResponse<JsonNode> response = Unirest.get("https://httpbin.org/get?show_env=1").asJson();
System.out.println(response.getBody().toString());
} catch (UnirestException e) {
e.printStackTrace();
}
}
}
关于java - SSLPeerUnverifiedException(Unirest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30107992/
当我们尝试从 zuul 访问安全 https REST 点时,出现以下异常。 2017-10-27 08:26:08.499 DEBUG 15708 --- [http-nio-9092-exec-1
当我们尝试从 zuul 访问安全 https REST 点时,出现以下异常。 2017-10-27 08:26:08.499 DEBUG 15708 --- [http-nio-9092-exec-1
我刚开始接触 API(官方和非官方),我正在使用一个名为 JavaSnap 的 API。 。我一直在搞乱示例代码的非常基本的实现,但遇到了错误。这是非常基本的代码: Snapchat snapchat
OkHttp 3.3.1 出现以下异常 javax.net.ssl.SSLPeerUnverifiedException: Hostname xxx not verified: certificate
我正在尝试使用相同的 keystore 连接客户端和服务器。客户端套接字可以获得对等证书,而服务器套接字无法获得对等证书但端口。获取证书失败,报SSLPeerUnverifiedException异常
我正在尝试使用 OkHttp 库向带有一些 url 参数的 API 发送 post 请求。正在关注this blog post到目前为止我有这段代码: public String okHttp
我想在本地系统中运行代码时向 url 发出 xml 请求它运行良好我已经创建了一个 war 文件并将其部署在服务器中,但是在服务器中运行时出现异常 'javax.net.ssl.SSLPeerUnve
我在 Fabric 上遇到以下异常: Non-fatal Exception: javax.net.ssl.SSLPeerUnverifiedException: Hostname assets.do
使用 Apache HttpClient 4.2.1。使用从基于表单的登录示例中复制的代码 http://hc.apache.org/httpcomponents-client-ga/examples
我有一个应用程序可以通过 https 与我拥有的服务器进行交互。我有一个有效的证书。 该应用程序适用于大多数用户,但一些用户报告说他们在连接已获得 root 权限的设备时遇到问题。他们还报告了 HTC
例如,我正在连接谷歌:( https://finance.google.com/finance?q=NASDAQ%3AAAPL ) 和 android okhttp 客户端,但它抛出错误: javax
我正在尝试使用自签名证书测试安全的 http 连接...仅用于开发目的。但是我一直无法解决 peer not authenticated 异常,当然我已经看过关于这个异常的类似帖子,下面是我正在使用的
我正在尝试为默认和自定义 keystore 向 TLS 服务器发送一个帖子。在执行执行时获得 CloseableHttpClient 实例后 CloseableHttpResponse respons
使用 Apache HttpClient 4.2.1。使用从基于表单的登录示例中复制的代码 http://hc.apache.org/httpcomponents-client-ga/examples
又是 SSLPeerUnverified 的沉闷问题,但我没有使用自签名证书。我尝试使用 https 连接到主机。此主机具有正确的证书,Firefox 和 HttpsUrlConnection 都没有
当我尝试使用 HTTPs 连接进行连接时,出现 SSL Peer Unverified Exception。我是 HTTP 的新手。我的代码是: HostnameVerifier hostnameVe
我们有一个与 https 服务器通信的 Android 应用程序。在架构团队更改服务器上的 https 证书之前,一切正常。现在,当用户尝试登录时,它将返回以下错误: javax.net.ssl.SS
我在网上阅读了很多主题,主要是关于堆栈溢出。我仍然无法让我的代码正常工作。我仍然得到:Android sslpeerunverifiedexception no peer certificate 这是
我已经创建了一个自签名的 SSL 证书用于测试目的。当我从浏览器打开 https://localhost 时它工作正常,现在我正在关注 this在 Android 中添加我自己的 TrustManag
这篇文章是 Worklight 中以下文章的延续: https://www.ibm.com/developerworks/forums/thread.jspa?threadID=470764 正如 I
我是一名优秀的程序员,十分优秀!