PDF herunterladen PDF herunterladen

HTTP Post gehört seit Android 5.1 zu veralteten HTTP Klassen wie org.apache.http und AndroidHttpClient. [1] Migriere deinen Code in die HttpURLConnection Klassen, welche eine Posting Funktionalität enthalten. HTTP Post wird in Java verwendet, um anzufordern, dass ein bestimmter Webserver Daten, die über ein Request-Formular übermittelt wurden, empfängt und speichert. Die Daten werden übermittelt und in Paaren aus Name und Wert gespeichert. Beispiele solcher Paare sind: email-deine E-Mail-Adresse, benutzername-dein Benutzername und password-dein Passwort.

Teil 1
Teil 1 von 2:

Einen Try Block und ein HttpURLConnection Objekt erstellen

PDF herunterladen
  1. 1
    Füge dem Android Manifest Internet-Berechtigung hinzu. Das Android Manifest ist eine XML-Datei, die dem Android-System wichtige Informationen liefert, die die Kompatibilität des Geräts und Zugriff auf Funktionen bestimmen. Füge in der Datei “AndroidManifest.xml” die folgende Zeile ein, um Internetzugang zu gewähren.
     <uses-permission 
     android:name= 
     "android.permission.INTERNET" 
     /> 
    
  2. 2
    Erstelle einen "try Block". In Java ist ein try Statement ein Exception Handler, der verhindert, dass das Programm abstürzt, wenn es keine Aktion ausführen kann. Da dafür eine Netzwerkverbindung nötig ist, fängt ein try Statement eine Ausnahme ab, wenn keine Verbindung hergestellt werden kann. Du kannst dies einer neuen Java-Methode hinzufügen. [2]
     try 
     { 
     //gib Statements ein, die zu Ausnahmen führen können 
     } 
    
  3. 3
    Erstelle HttpURLConnection und URL Objekte. Java ist eine objektorientierte Sprache. Ein Objekt besteht aus Zuständen und Verhaltensweisen, die Instanzen einer Klasse sind. Das HttpURLConnection Objekt sendet und empfängt Daten über das Internet. Beginne die neue Methode in deinem Code, indem du ein URL-Objekt erstellst und ihm eine URL für das HttpURLConnection Objekt zuweist, mit dem es sich verbinden soll. [3]
     URL 
     url 
     = 
     new 
     URL 
     ( 
      
     http 
     : 
     //beispielURL.com/”); 
     HttpURLConnection 
     client 
     = 
     ( 
     HttpURLConnection 
     ) 
     url 
     . 
     openConnection 
     (); 
    
    Werbeanzeige
  • Etabliere das URL und HttpURLConnection Objekt am besten außerhalb des try Blocks, damit das Abfangen von Ausnahmen einfacher wird.
 URL 
 url 
 = 
 new 
 URL 
 ( 
  
 http 
 : 
 //beispielURL.com/”); 
 HttpURLConnection 
 client 
 = 
 null 
 ; 
 try 
 { 
 client 
 = 
 ( 
 HttpURLConnection 
 ) 
 url 
 . 
 openConnection 
 (); 
 } 
Teil 2
Teil 2 von 2:

Den Output Request und die Handling Exceptions posten

PDF herunterladen
  1. 1
    Setze die request Methode auf "post". Um Informationen an den Server zu senden, musst du mithilfe von setDoOutput() den Typ des HttpURLConnection Objekts auf "post" stellen und die Ausgabe auf "true". Verwende die Funktion setRequestProperty(), um ein allgemeines request property festzulegen, das zwei Elemente erfordert, einen Schlüssel mit einem bekannten Request des Servers und einen Wert, der im entsprechenden Schlüssel enthalten ist.
    • Die Funktion setRequestProperty() wird als Accept-Encoding Request Header verwendet, um eine automatische Dekomprimierung zu deaktivieren.
     client 
     . 
     setRequestMethod 
     ( 
      
     POST 
      
     ); 
     client 
     . 
     setRequestProperty 
     ( 
      
     Key 
      
     , 
      
     Value 
      
     ); 
     client 
     . 
     setDoOutput 
     ( 
     true 
     ); 
    
  2. 2
    Gib den Stream an den Server aus. Du musst den Output-Stream vom Server anfordern, um den Output-Stream schreiben ("posten") und dann flushen und schließlich schließen zu können.
     OutputStream 
     outputPost 
     = 
     new 
     BufferedOutputStream 
     ( 
     client 
     . 
     getOutputStream 
     ()); 
     writeStream 
     ( 
     outputPost 
     ); 
     outputPost 
     . 
     flush 
     (); 
     outputPost 
     . 
     close 
     (); 
    
    • Aus Performance-Gründen ist es eine gute Idee, den Server darüber zu informieren, wie groß die Datei in Bytes sein wird. Die beste Methode ist setFixedLengthStreamingMode(int), wenn die Body-Länge bekannt ist, [4] wohingegen setChunkedStreamingMode(int) verwendet wird, wenn seine Länge nicht bekannt ist. [5] Wenn du keine der beiden Methoden verwendest, führt dies dazu, dass das HttpURLConnection Objekt den kompletten Body im Speicher puffert, bevor er übermittelt wird.
     client 
     . 
     setFixedLengthStreamingMode 
     ( 
     outputPost 
     . 
     getBytes 
     (). 
     length 
     ); 
     client 
     . 
     setChunkedStreamingMode 
     ( 
     0 
     ); 
    
  3. 3
    Fange Ausnahmen ab. Verwende nach dem try Statement den catch Block, um mit IOException auf eine Ausnahme bei der Eingabe und der Ausgabe zu prüfen, einen URL-Fehler mit der MalformedURL Ausnahme abzufangen und mit SocketTimeoutException zu prüfen, ob die URL nicht zeitnah eine Reaktion liefert.
     catch 
     ( 
     MalformedURLException 
     error 
     ) 
     { 
     //Behandelt eine falsch eingegebene URL 
     } 
     catch 
     ( 
     SocketTimeoutException 
     error 
     ) 
     { 
     //Behandelt einen URL Access Timeout. 
     } 
     catch 
     ( 
     IOException 
     error 
     ) 
     { 
     //Behandelt Eingabe- und Ausgabefehler 
     } 
    
  4. 4
    Trenne dich von der URL. Nachdem du mit der URL-Verbindung fertig bist, musst du dich von der URL trennen. Prüfe, dass du mit einer URL verbunden bist, bevor du eine Trennung versuchst.
     finally 
     { 
     if 
     ( 
     client 
     != 
     null 
     ) 
     // Stelle sicher, dass die Verbindung nicht null ist. 
     client 
     . 
     disconnect 
     (); 
     } 
    
    Werbeanzeige

Was du brauchst

  • Eine Java IDE
  • Android Entwicklungs-Tools (SDK, Emulator etc.)
  • Ein Android Entwickler-Telefon oder ein anderes Gerät mit Android (optional zum Testen)
  • Eine Internetverbindung (zum Testen)

Über dieses wikiHow

Diese Seite wurde bisher 8.255 mal abgerufen.

War dieser Artikel hilfreich?

Werbeanzeige