Ich arbeite an einem Projekt, in dem mein Kollege einen HTTPS-Server implementiert hat, der ein selbstsigniertes Zertifikat verwendet, und ich entwerfe eine Android-App, die HttpPosts dorthin sendet. Er hat es mit Curl getestet und keine Probleme festgestellt. Ich benutze Android 3.2, falls es relevant ist.
Nach diesem Tutorial hier habe ich einen Keystore generiert und zur App hinzugefügt, einen benutzerdefinierten httpClient erstellt. Ich habe die GET-Anfrage durch POST ersetzt mit dem folgenden Code:
private InputStream postHttpConnection(String urlValue,
JSONObject jsonPost, Context context) {
InputStream inStream = null;
URL url;
try {
url = new URL(urlValue);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
Log.e("postHttpConnection", "Fehler: " + "Keine HTTP-Verbindung");
} catch (MalformedURLException e) {
Log.e("postHttpConnection", "Fehler: " + e);
} catch (IOException e) {
Log.e("postHttpConnection", "Fehler: " + e);
}
try {
DefaultHttpClient client = new MyHttpClient(context);
HttpConnectionParams
.setConnectionTimeout(client.getParams(), 10000);
HttpResponse postResponse;
HttpPost post = new HttpPost(urlValue);
StringEntity se = new StringEntity(jsonPost.toString());
post.setEntity(se);
post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json");
postResponse = client.execute(post);
inStream = postResponse.getEntity().getContent();
} catch (ClientProtocolException e) {
Log.e("postHttpConnection", "Fehler: " + e);
} catch (IOException e) {
Log.e("postHttpConnection", "Fehler: " + e);
}
return inStream;
}
Wenn ich diese Funktion mit einem entsprechenden JSONObject verwende, erhalte ich den folgenden Fehler:
E/postHttpConnection(9236): Fehler: javax.net.ssl.SSLException: Zertifikat für
Können Sie mir sagen, worauf sich das bezieht? Vielen Dank.