Ü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 August 2010
MoDiMiDoFrSaSo
1
2345678
9101112131415
16171819202122
23242526272829
3031
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);
?>

Interessant gefunden?
Dann steht dir auch ein Feed (mit vollständigen Beiträgen!) zur Verfügung: RSS RSS 2.0

del.icio.us digg Technorati Mr. Wong google Yahoo Yigg Folkd

Die Kommentarfunktion wurde für diesen Eintrag deaktiviert.

Register