Formulardaten von HttpListenerRequest abrufen

6

Ich habe einen HttpListenerRequest, der von einem html <form> initiiert wurde, der gepostet wurde. Ich muss wissen, wie man die geposteten Formularwerte + die hochgeladenen Dateien erhält. Kennt jemand ein Beispiel, um mir die Zeit zu sparen, es für mich selbst zu machen? Ich hatte eine Google-Umgebung, fand aber nichts Nützliches.

    
Peter Morris 04.03.2011, 18:11
quelle

2 Antworten

-2

Ich habe ein paar Beispiele von Webservern für MonoTouch gefunden, aber keiner von ihnen hat die Daten geparst, die in einer POST-Anfrage gesendet wurden. Ich habe mich im Internet umgeschaut und konnte keine Beispiele dafür finden. Jetzt, wo ich es selbst geschrieben habe, habe ich beschlossen, meine eigene Implementierung zu teilen. Dies beinhaltet nicht nur den Code für die Verarbeitung der Formularpostdaten, sondern auch für die Registrierung von Anforderungshandlern usw.

Hier ist ein Beispiel, wie Sie den Webserver verwenden würden

%Vor%

Und hier sind zwei App-spezifische Beispiele für Request-Handler

%Vor%

Sie können den Quellcode hier herunterladen Ссылка

    
Peter Morris 02.04.2011, 17:59
quelle
11

Die Hauptsache ist, dass HttpListener ein Low-Level-Tool ist, um mit http-Anfragen zu arbeiten. Alle Postdaten befinden sich im HttpListenerRequest.InputStream-Stream. Angenommen, wir haben ein solches Formular:

%Vor%

Jetzt wollen wir die Postdaten sehen. Implementieren Sie eine Methode, um dies zu tun:

%Vor%

lade eine Datei hoch und sehe das Ergebnis:

%Vor%

Als nächstes nehmen wir an, wir haben ein einfaches Formular, ohne Dateien hochzuladen:

%Vor%

Sehen wir uns die Ausgabe an:

%Vor%

Kombiniertes Formularergebnis:

%Vor%

Wie Sie im Falle eines einfachen Formulars sehen können, können Sie InputStream einfach lesen, um Postwerte zu stringieren und zu analysieren. Wenn es eine komplexere Form gibt - Sie müssen komplexere Parsing durchführen, aber es ist immer noch möglich. Hoffe, diese Beispiele werden Ihre Zeit sparen. Beachten Sie, dass das nicht immer der Fall ist, wenn Sie den gesamten Stream als Zeichenfolge lesen.

    
EvgK 04.03.2011 19:02
quelle