HTTPS request mit der Get Methode

  • Hallo zusammen,
    Ich bin Max und neu hier.


    Ich habe ein Projekt, in dem ich einen https Server auf meinem lokalen PC laufen habe.
    Das Problem ist dabei ist, dass ich mit meiner App über Https request bestimmte Daten rausholen möchte.
    Mein Problem ist, dass ich keine Verbindung zum Server aufbauen kann.
    Ich vermute dass es daran liegt, dass es kein gültiges Zertifikat für den Https Server gibt.
    Ich kann aber auch keins einspielen.


    Der Ablauf soll wie folgt sein:
    Wenn ich auf einen Login Button drücke soll im Hintergrund ein Https request abgeschickt werden und mir
    ein JSON Objekt mit einen Sicherheitstoken zurück geben. Danach soll der Sicherheitstoken ausgelesen werden.
    Es soll also nicht übermittelt werden sondern lediglich eine Verbindung aufgebaut werden und mir ein
    JSON Objekt zurückgeben.


    Meine Mainclass:



    Mein Connectioncode ist wie folgt aufgebaut:



    Als IOException zeigt er mir diese Meldung an:


    11-23 19:25:54.275 28323-29066/com.example.maxpe_000.webware E/JSONTaskRegistrieren: Error
    11-23 19:26:12.102 28323-29066/com.example.maxpe_000.webware W/System.err: java.net.UnknownHostException: Unable to resolve host "https://192.168.2.107/WWSVC/WWSERVICE/REGISTER/HHash/HAHash/1": No address associated with hostname
    11-23 19:26:12.108 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:475)
    11-23 19:26:12.108 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
    11-23 19:26:12.108 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.InetAddress.getAllByName(InetAddress.java:215)
    11-23 19:26:12.108 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.Socket.tryAllAddresses(Socket.java:111)
    11-23 19:26:12.109 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.Socket.<init>(Socket.java:180)
    11-23 19:26:12.109 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.Socket.<init>(Socket.java:152)
    11-23 19:26:12.109 28323-29066/com.example.maxpe_000.webware W/System.err: at javax.net.ssl.SSLSocket.<init>(SSLSocket.java:772)
    11-23 19:26:12.109 28323-29066/com.example.maxpe_000.webware W/System.err: at com.android.org.conscrypt.OpenSSLSocketImpl.<init>(OpenSSLSocketImpl.java:187)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at com.android.org.conscrypt.OpenSSLSocketFactoryImpl.createSocket(OpenSSLSocketFactoryImpl.java:68)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at com.example.maxpe_000.webware.JSONTaskRegistrieren.doInBackground(JSONTaskRegistrieren.java:47)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at com.example.maxpe_000.webware.JSONTaskRegistrieren.doInBackground(JSONTaskRegistrieren.java:26)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    11-23 19:26:12.111 28323-29066/com.example.maxpe_000.webware W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    11-23 19:26:12.112 28323-29066/com.example.maxpe_000.webware W/System.err: at java.lang.Thread.run(Thread.java:818)
    11-23 19:26:12.112 28323-29066/com.example.maxpe_000.webware W/System.err: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
    11-23 19:26:12.112 28323-29066/com.example.maxpe_000.webware W/System.err: at libcore.io.Posix.android_getaddrinfo(Native Method)
    11-23 19:26:12.112 28323-29066/com.example.maxpe_000.webware W/System.err: at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55)
    11-23 19:26:12.112 28323-29066/com.example.maxpe_000.webware W/System.err: at java.net.InetAddress.lookupHostByName(InetAddress.java:456)
    11-23 19:26:12.112 28323-29066/com.example.maxpe_000.webware W/System.err: ... 16 more



    Vielen dank schon einmal für eure Hilfe und Ideen.

  • android erlaubt per default keine eigen signierten ssl zertifikate. dafür musst du entweder dein zertifikat manuell im code als "sicher" abstempeln oder den sicherheitsmechanismus komplett abschalten. Zum entwickeln kannst du den mechanismus auch einfach deaktivieren, das ist nicht so schlimm. aber später solltest du dir ein richtiges zertifikat besorgen. Du musst dir sozusagen einen eigenen HttpsTrustManager schreiben.


    Für deine REST API empfehle ich dir ganz stark volley zu verwenden, das google framework ist sehr mächtig und spart dir viel zeit.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!