Laden...

HttpRequestParser: Wie wird eine Seite mit Methode POST verarbeitet?

Erstellt von Bumbum vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.167 Views
B
Bumbum Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren
HttpRequestParser: Wie wird eine Seite mit Methode POST verarbeitet?

Hallo,

ich bin neu hier und habe eine Frage. Ich habe versucht eine Antwort über die Suche zu finden, bin aber leider gescheitert.
Ich bin vor vielen Jahren in die Programmierung eingestiegen mit damals noch QBasic, Turbo Pascal und Visual Basic 3.0. Aktuell nutze ich hauptsächlich VB.net oder C# für Atmel µC-Programmierung.
In C# habe ich nur rudimentäre Kenntnisse.
Ich arbeite mich derzeit für ein kleines Privatprojekt in Windows 10 IoT ein. Für meine Anwendung benötige ich einen kleinen Webserver um diverse Einstellungen vornehmen zu können. Diese habe ich bereits realisiert. Man findet im Netz zwei Klassen (HttpServer.cs und HttpRequestParser.cs), mit denen man recht schnell so etwas umsetzen kann.
Ich bin auch schon soweit, dass ich Seiten ausliefern kann. Als nächstes habe ich ein Formular gestaltet mit Textboxen. Diese werden dann mit der Http-Methode "POST" übertragen. Leider sind die gerade eben genanten Klassen noch nicht für die Verarbeitung von "POST" ausgestattet.
Im moment stehe ich vor dem Problem wie ich an die Body-Daten. Der Header wird übertragen und in der Klasse HttpRequestParser ausgewertet. Je nach Eingabe in die Textfelder ändert sich auch das Feld "Content-Length" im Header. Aber es werden dann scheinbar vom Browser keine Body-Daten mit den Url-Encodierten Wertepaaren übermittelt.

Es ist eigentlich ein Http-Problem. So wie ich das sehe wird beim POST-Request der Header komplett übertragen, aber dann ist Schlu0. Wer kennt sich aus und kann mir sagen ob ich eventuell dem Browser noch was senden muss, damit er den Body herausrückt?

Bei Bedarf kann ich die Klassen hier posten.

Viele Grüße und vielen Dank schon einmal,
Andreas

16.842 Beiträge seit 2008
vor 7 Jahren

Eigentlich kann man Dich an der Stelle einfach an das RFC verweisen, in der drin steht, was HTTP POST macht bzw. was man hier machen muss.
Ist die WebAPI auf dem Windows 10 IoT nichts für Dich, oder wieso arbeitest Du mit HttpServer? Hast Du verschiedene Möglichkeiten evaluiert oder einfach die erstbeste genommen?

B
Bumbum Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren

Hallo Abt,

vielen Dank für deine Antwort. Wie bereits geschrieben bin ich noch Einsteiger. Ich bin ehrlich gesagt noch etwas überfordert von der Vielfalt und den vielen kleinen "Problemchen", die auf dem Weg entstanden sind und noch entstehen werden.
Ich habe mir vor einer Woche ein RaspberryPi3 gekauft und dort Windows 10 IoT installiert. Danach habe ich Visual Studio 2015 heruntergeladen und angefangen zu "spielen".
Die HttpServer-Klasse war meine zweite Wahl. Der Name der ersten ist mir gerade entfallen. Ich bin nicht darauf festgelegt.

Dein Vorschlag hört sich gut an. Ich habe gerade nach der WebAPI gegoogelt und fast eine Stunde darüber gelesen. Wenn ich es richtig verstanden habe kann ich damit ASP.net Seiten in der Anwendung hosten. Leider habe ich kein brauchbares Beispiel gefunden, um dies auch tatsächlich auf Windows 10 IoT mit aspx-Seiten durchzuführen. Hast du da vielleicht einen Link für mich? Es fängt schon an, dass die Namespaces System.Web.xxx nicht verfügbar sind.

asp.net-Seiten (mit VB.net) habe ich bereits erstellt. Wenn ich einen "Mini-Server" in meiner IoT-Anwendung auf dem RaspberryPi erhalte wäre das für mich vermutlich am schnellsten zielführend.

Viele Grüße,
Andreas

B
Bumbum Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren

Hallo noch mal,

ich habe das Package jetzt im NuGet Packetmanager gefunden. (Vorhin irgendwie nicht). Das Problem ist, dass ich für das Pi eine UWP Anwendung erstellen muss. Dafür scheint es die Selfhosting-WebAPIs nicht zu geben.
Sorry, dass ich diese Information nicht zu Beginn genannt habe.

Viele Grüße,
Andreas

16.842 Beiträge seit 2008
vor 7 Jahren

Erzähl doch mal, was Du vor hast, was das werden soll.
In UWP einen "Webserver zu hosten" ist schon eher ungewöhnlich. Bist Du auf Windows 10 IoT oder von welchem Szenario sprechen wir denn?

B
Bumbum Themenstarter:in
8 Beiträge seit 2016
vor 7 Jahren

Hallo Abt,

es geht um eine App ohne Bedienmöglichkeit. Genauer gesagt um einen Kalender. Die Termine möchte ich über eine Webseite einpflegen.
Wir bereits geschrieben handelt es sich um ein RapsberryPi 3, auf dem Windows 10 IoT läuft.

Ich habe den Request jetzt auf GET umgestellt und festgestellt, dass die Datenfelder dann über die URL mitgegeben werden.
Da es sich bei mir nicht um eine sicherheitsrelevante Anwendung handelt, die auch nur im Heimnetz läuft, reicht mir das vorerst als Lösung.

Viele Grüße
Andreas

16.842 Beiträge seit 2008
vor 7 Jahren

Jo dann wirst Du aktuell nicht viel machen können - oder selbst implementieren.
UWP bietet hier nur sehr wenig und .NET Core kommt erst mit Version 1.1.0 auf ARM Plattformen.