Httpclient 4.3 hatte drei statische Variablen in org.apache.http.conn.ssl.SSLConnectionSocketFactory
:Apache Httpclient 4.4: HostnameVerifier Übergang von 4.3.x
- STRICT_HOSTNAME_VERIFIER
- BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
- ALLOW_ALL__HOSTNAME_VERIFIER
Wenn die Abhängigkeit auf Version Upgrade 4.4 von HttpClient, sehe ich, dass alle oben genannten Konstanten veraltet sind. Der Depretion-Hinweis in JavaDoc, der für die Verwendung von org.apache.http.conn.ssl.DefaultHostnameVerifier
verwendet wird. Wenn ich die Dokumente lese, gehe ich davon aus, dass DefaultHostnameVerifier
ein direkter Ersatz für STRICT_HOSTNAME_VERIFIER
ist. Auch die ALLOW_ALL__HOSTNAME_VERIFIER
ist einfach zu implementieren:
package org.wiztools.restclient.http;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
/**
*
* @author subwiz
*/
public class AllowAllHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String string, SSLSession ssls) {
return true;
}
}
Es gibt einen feinen Unterschied zwischen den STRICT_HOSTNAME_VERIFIER
und BROWSER_COMPATIBLE_HOSTNAME_VERIFIER
(von JavaDoc):
Der einzige Unterschied zwischen BROWSER_COMPATIBLE und UNABHäNGIGER ist, dass ein Platzhalter (wie "* .foo.com") mit BROWSER_COMPATIBLE passt auf alle Subdomains, einschließlich "abfoo.com".
Haben wir eine BROWSER_COMPATIBLE
Hostname Verifier für httpclient 4.4?
Ich war auf der Suche für die Nicht-veraltet Weise zu tun 'ALLOW_ALL_HOSTNAME_VERIFIER' und Der 'NoopHostnameVerifier' hat funktioniert. Ersetzen Sie einfach den zweiten Parameter der Funktion durch eine Instanz dieser Klasse, also: 'SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory (sslContext, neuer NoopHostnameVerifier());' –