Problem beim senden von Datei und Text an Webserver

Hallo ich habe ein kleine Problem und zwar möchte ich ein Bild und Text an einen Webserver schicken
Das mit dem Bild Funktioniert auch schon nun möchte ich aber noch einen Text mitschicken wie z.B eine Beschreibung nur weiß ich leider nicht wie ich das angehen soll.
ich Möchte es dann wie wen ich in Php ein Formular Übergebe

<?php echo $_POST['beschreibung']; ?>

einfach rauskitzeln ist das möglich?

dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"bild\";" + " filename=\"" + exsistingFileName +lineEnd);
dos.writeBytes(lineEnd);```

Grüße PrOOnOOb

ich kenn mich jetzt erlich gesagt auch nicht so gut damit aus wie man FILE richtig umsetzt … aber am ende sind es ja alles nur POST daten … also könnte man das ganze auch als reinen POST request basteln …

ansonsten wäre der einfache weg : nimm WireShark und beobachte den request den dein browser macht … und bau den nach … das sollte dann passen

Was Du hier machen möchtest, nennt sich multipart-formdata. Enhalten sein soll ein binärer Anteil und ein Text eines Form-Fields (so wie es ein Browser machen würde). Hier ein Link, wo das Schritt für Schritt erklärt ist (erste Antwort): http://stackoverflow.com/questions/11766878/sending-files-using-post-with-httpurlconnection
Du siehst, mit HttpUrlConnection ist das recht viel manueller Aufwand. Wenn’s Dich nicht stört, gut. Ansonsten schaue Dir mal HTTP-Clientframeworks an, z.B. das von Apache: http://hc.apache.org/httpcomponents-client-ga/

Ehm, Boundarys/Attachements werden doch meist nur für Files genutzt oder nicht?
Post-Daten werden doch direkt als body mit NameValue-Pairs geschrieben oder täscueh ich mich da?


<?php
echo $_POST['beschreibung']; // Ergibt "Inhalt"
echo $_POST['test']; // Ergibt "Hallo Welt"
echo $_POST['andere_variable']; // Ergibt "Test123"
?>

Müsste dann also wie folgt aussehen:

String data = "beschreibung=Inhalt&test=Hallo%20Welt&andere_variable=Test123";

dos = new DataOutputStream(conn.getOutputStream());
dos.writeBytes("Content-Length: " + data.length() + "
");
dos.writeBytes("Content-Type:application/x-www-form-urlencoded
");
dos.writeBytes("

"); // Hier fängt der Body an
dos.writeBytes(data);

Ehm, Boundarys/Attachements werden doch meist nur für Files genutzt oder nicht?

Japp, hatte die Ausgangsfrage (Bild plus Text) genau so verstanden.

Habe mein Problem leider nicht lösen können Momentan sieht es so aus
weis Jemand wo der Fehler liegt?

        String lineEnd = "
";
        String twoHyphens = "--";
        String boundary = "*****";

                conn.setRequestMethod("POST");
                conn.setRequestProperty("Connection", "Keep-Alive");
                conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);

                String data = "uid=Test";
                dos = new DataOutputStream(conn.getOutputStream());
                dos.writeBytes(twoHyphens + boundary + lineEnd);
                dos.writeBytes("Content-Disposition: form-data; name=\"bild\";" + " filename=\"" +     exsistingFileName + lineEnd);
                dos.writeBytes(data);
                dos.writeBytes(lineEnd);


Grüße PrOOnOOb