Zum Inhalt springen

HTML-Post-Formular in Java abschicken


Empfohlene Beiträge

Geschrieben

Guten Morgen!

Ich hab folgendes vor, hab aber keine Ahnung wie sich das realisieren lässt. Es soll ein kleines Programm für einen Drucker werden. Der Drucker hat ein Webinterface in dem man ZPLII-Druckercode pasten kann und dann einen Vorschaudruck erstellen kann. Dies möchte ich gern in Java lösen. Im Webinterface hab ich folgendes Post-Formular:

<FORM METHOD="POST" ACTION="zpl">

<P>

<TEXTAREA NAME="data" ROWS="24" COLS="80" WRAP="virtual"></TEXTAREA>

</P>

<INPUT TYPE="hidden" NAME="dev" VALUE="R">

<INPUT TYPE="hidden" NAME="oname" VALUE="UNKNOWN">

<INPUT TYPE="hidden" NAME="otype" VALUE="ZPL">

<P>

<!-- Hiermit kann ich also den code in der Textarea 'data' abschicken um die Vorschau zu erstellen -->

<INPUT TYPE="submit" NAME="prev" VALUE="Etikettenvorschau">

<!-- Und hiermit könnte ich es evtl gleich ausdrucken -->

<INPUT TYPE="submit" NAME="print" VALUE="Etikett drucken">

<INPUT TYPE="reset" VALUE="Zurücksetzen">

</P>

<P>

<INPUT TYPE="submit" NAME="save" VALUE="Speichern">

<INPUT TYPE="submit" NAME="saveas" VALUE="Speichern unter">

<B>Passwort</B>

<INPUT TYPE="password" NAME="pw" VALUE="" SIZE="4" MAXLENGTH="4">

</P>

</FORM>

Ich hoffe ihr könnt mir ein bisschen unter die Arme greifen

Gruß,

Schlossa

Geschrieben

OK, das schaut ganz gut für Dich aus.

Du kannst das hier HttpComponents - HttpComponents Overview nutzen.

Oder es selbst machen, wie folgt:

Du musst ein (nennen wir es Http-Post-) Paket zusammenbauen.

Schau Dir mal hier Hypertext Transfer Protocol ? Wikipedia an, wie der Traffic aussehen sollte.

Und das Paket schickst Du ab und wertest die Antwort aus.

Aber da ich die nicht sehe/kenne kann ich Dir da nicht weiterhelfen.

Wahrscheinlich liefert der Drucker aber eine Bilddatei zurück.

Geschrieben (bearbeitet)

Ich denke mal HttpComponents ist die bessere Lösung :D

Uuuund.. Wie realisiere ich das mit HttpComponents? sorry..

EDIT:

Okay.. gidf :D

http://www.java2s.com/Code/Java/Apache-Common/HttppostmethodExample.htm

Nur wie unterscheide ich zwischen

<INPUT TYPE="submit" NAME="prev" VALUE="Etikettenvorschau">
und
<INPUT TYPE="submit" NAME="print" VALUE="Etikett drucken">

Bearbeitet von schlossa
Geschrieben

Du unterscheidest das garnicht. Das unterscheidet der WebServer im Drucker.

Denn der bekommt nur einen submit-Button, nämlich den auf den Du gedrückt hast. D.h. das ist eine Weiche mit denselben Parametern zwei Dinge zu tun.

Geschrieben
Du unterscheidest das garnicht. Das unterscheidet der WebServer im Drucker.

Denn der bekommt nur einen submit-Button, nämlich den auf den Du gedrückt hast. D.h. das ist eine Weiche mit denselben Parametern zwei Dinge zu tun.

Das ist mir schon klar, aber wie sage ich den Java-Code dass er an den Webserver mitschicken soll "wie die Weiche steht"

Geschrieben

Du musst ja über die Http-Komponente Deine Parameter setzen.

Der submitbutton ist ganz genau so ein Parameter aus Name=Wert.

Der input-Typ submit sagt nur dem Browser, dass er das abschicken soll.

Geschrieben

Alles klar habs hinbekommen. Habe jetzt das was ich zurückbekomme als HTMLDocument eingelesen. Jetzt folgende Aufgabenstellung:

stellen wir uns vor es steht in dem dokument folgendes

<a href="testseite.html"><img src="testbild.jpg"></a>

Ich will jetzt den src-Parameter vom img-Tag auslesen.

Allerdings ist alles was ich weiß dass ich ein a-Tag mit gegebenen

href-Parameter hab (also das "testseite.html" ist fest)

Jemand ahnung wie man das löst? Google war diesmal nicht mein Freund... =/

Geschrieben

Du bekommst nur das als Dokument zurück, oder du bekommst ein vollständiges HTML Dokument zurück, wo unter anderem irgendwo dieser Link vorkommt?

Beides lässt sich mit Regular Expressions lösen, bei ersterem brauchste dir so einen Ausdruck nur gegen die Zeile vergleichen die du zurück bekommst, bei zweiterem müsstest du alle Zeilen die du zurück bekommen hast, durchgehen und vergleichen ob sie gegen den Ausdruck passen, und wenn sie das tun, die Quelle vom img-Tag extrahieren.

In den Java Tutorials von Sun wird erklärt wie man die RegExp in Java nutzen kann.

Der RegExp in deinem Fall wäre:

<a href=\".+\\..+\"><img src=\"(.+\\..+)\"></a>

Wenn das Bild immer in einem a-Tag eingeschlossen ist, dass nur ein href-Attribut hat, wobei das href-Attribut beliebig gesetzt sein kann, aber nach folgendem Schema aufgebaut ist: [Name].[Endung].

Wenn das der Fall ist, dann steht in der 1. Gruppe der Auswertung dann genau der Dateinamen bzw. Pfad deines Bildes drin. Aber am besten schaust du dir mal das Tutorial an ;)

Geschrieben

Hmm, klingt logisch. Du bekommst eine HTML-Seite als Antwort und logischerweise müsste dann der Browser (in diesem Fall Dein Java) per HTTP-GET das Bild abfragen.

Du musst also einen rudimentären Parser programmieren. Da kannst Du ganz pragmatisch vorgehen und einfach:

- HTML von allen whitespaces (spaces, CR, LF, ...) befreien, wenn Du Dir nicht sicher bist, dass die Antwort immer gleich "ausschaut".

- dann suchst Du einfach nach Deinem <ahref="blablu" als Einstiegspunkt

- und nun suchst Du ab diesem Punkt nach <imgsrc=" und merkst Dir die Pos1

- und jetzt suchst Du ab Pos1+1 nach dem nächsten " für das Ende

- jetzt holst Du Dir diesen subString und

- nun kannst den o.g. HTTP-GET-Request absetzen und das Bild holen.

fertig ist der Lack

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...