So erstellen Sie eine https-Verbindung?
Mein code funktioniert für http, aber nicht https.
Ich versuche, mich Https connections
auf den Android-Handys, mit HttpClient. Problem ist, dass ich immer net.ssl.SSLPeerUnverifiedException: No peer certificate
. und Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Hier ist die relavent-code für die Benutzerdefinierte HttpClient.
public static HttpClient getNewHttpClient() {
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);
SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
DefaultHttpClient http = new DefaultHttpClient(conMgr, params);
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("name", "pass");
AuthScope authScope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT);
http.getCredentialsProvider().setCredentials(authScope, credentials);
return http;
}
dies ist der code für das abrufen von Informationen vom server
public static void Get() {
HttpClient http = getNewHttpClient();
HttpResponse response;
try {
HttpGet httpost = new HttpGet(url);
response = http.execute(httpost);
BufferedReader in = null;
Log.i(TAG, "resp-" + response);
in = new BufferedReader(new InputStreamReader(response.getEntity()
.getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String page = sb.toString();
Log.i(TAG, "res=" + sb.toString());
tv.setText(page);
} catch (ClientProtocolException e) {
Log.i(TAG, "ClientProtocolException=" + e);
e.printStackTrace();
} catch (IOException e) {
Log.i(TAG, "ClientProtocolException=" + e);
e.printStackTrace();
}
}
Irgendwelche Gedanken?
ich bin immer diese Fehlermeldung : javax.net.ssl.SSLPeerUnverifiedException: Nein peer-Zertifikat
developer.android.com/reference/javax/net/ssl/... ich habe mein problem gelöst, vor 2 Monaten aus dem obigen link-Verweis.
developer.android.com/reference/javax/net/ssl/... ich habe mein problem gelöst, vor 2 Monaten aus dem obigen link-Verweis.
InformationsquelleAutor RajaReddy PolamReddy | 2012-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Endlich hab ich die Lösung für mein Problem, für diese Lösung, die ich suchte viel in drei Tagen. Problem mit der Authentifizierung beim server mit Benutzername und Passwort. Ich code geändert wie dieser. ich bin mir übergeben von Anmeldeinformationen an den server, dass ist die einzige änderung in meinem anderen code als code, der die verfügbaren in der Frage..
MySSLSocketFactory
.ich habe versucht, alle Lösungen zur Verfügung, in der SO endlich hab ich die Lösung aus diesem stackoverflow.com/a/4837230/964741
Danke es funktionierte für mich.
InformationsquelleAutor RajaReddy PolamReddy
Versuchen zu schauen, wie https über HttpClient implementiert wurde, wird in den Antworten in diesem Beitrag: Vertrauen allen Zertifikaten mit HttpClient über HTTPS
Sie gesprochen haben, im detail auf Keystore und TrustManager
InformationsquelleAutor Soham