Über dieses Blog...

»Wenn ich einmal alt bin, werde ich nur nörgeln — das wird ein Spaß!«

Tipps und Tricks, aber auch Kritik - breit gefächert von Technik bis hin zum Design, manchmal (oder immer öfter) auch Politik.

Momentaner Fokus: Android/Java, CalDAV, Windows 7 benutzbar machen

Feeds

Interessant gefunden? Mitlesen? Vollständige Beiträge per Feed.

RSS-Feed RSS 2, Atom

Zur Weiterverarbeitung oder zum Einbauen für Ihre Homepage: CSV, JavaScript

Durchsuchen

Tipp: AND & && OR | || XOR - ! NOT ( )

Archiv

Einträge im Februar 2012
MoDiMiDoFrSaSo
12345
6789101112
13141516171819
20212223242526
272829
Beiträge im Archiv zeigen

Android/Java: HTTP-Requests absenden

Zumindest per HTTP klappt das Nachfragen — HttpsURLConnection klappt leider nicht (import javax.net.ssl.HttpsURLConnection) und wirft eine nichtssagende Fehlermeldung mit irgendeiner Klassenangabe von Apache Harmony. Die Zeilen, die mit java.io.* zu tun haben (insbesondere das Anlegen des BufferedReader) lassen mich erahnen, warum so eine richtige objektorientierung wohl doch nicht immer ideal ist…

Hier wieder der Code (über die Formatierung hier im Blog muss ich auch mal drüber schauen — ist aber ne geklaute Klasse, d. h. die kann ich nicht ohne weiteres Einarbeiten anpassen):

import java.net.HttpURLConnection;
import java.net.URL;
import java.io.*;

public class TestActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        
        String s = „DEBUG:\n";
        
        try {
            String t;
            String postData = „Testtext per POST";
            // Verbindung aufbauen, Parameter setzen
            URL u = new URL(„http://192.168.2.100/reverse.php“);
            //HttpsURLConnection uc = (HttpsURLConnection)u.openConnection();
            HttpURLConnection uc = (HttpURLConnection)u.openConnection();
            uc.setUseCaches(false);
            uc.setDoInput(true);
            uc.setDoOutput(true);
            // POST-Data setzen
            uc.setRequestMethod(„POST“);
            uc.setRequestProperty(„Content-Type", „text/xml; charset=utf-8“);
            uc.setRequestProperty(„Content-Length", Integer.toString(postData.getBytes().length));
            DataOutputStream dos = new DataOutputStream(uc.getOutputStream());
            dos.writeBytes(postData);
            dos.flush();
            dos.close();
            // Rückgabe lesen
            BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
            while ((t = br.readLine()) != null) {
                s += t + „\n";
            }
            br.close();
            // Done :)
            uc.disconnect();
        } catch (Exception e) {
            s = „ERR: „+e.getMessage();
        }
        tv.setText(s);
        setContentView(tv);
    }
}

Die reverse.php ist übrigens einfach nur ein PHP-Script, das die per POST reinkommenden Daten umdreht und wieder ausgibt:

<?
$post = file_get_contents(„php://input“);
echo strrev($post);
?>

Alle Nachrichten finden Sie im Archiv.

Register