Hallo, ich hab es jetzt endlich nach längerem herumprobieren geschafft den XPort-05R dazu zu bewegen sich mit einen Webserver zu verbinden. klappte mit: C192.168.1.6:80 danach habe ich folgende URL über RS232 übergeben: GET Host: http://192.168.1.6/cgi-bin/npcgi?msg=Test&no=669&bp=3 HTTP/1.1\r\n in der Antwort stand folgendes: Your browser sent a request that this server could not understand.<p><pre>GET Ho st: http://192.168.1.6/cgi-bin/npcgi?msg=Test&no=669&bp=3 HTTP/1.1 Hat jemand eine Idee was ich machen muss damit der XPort mein gesendetes "&" so belässt und nicht "&" daraus macht? Gebe ich das in einen normalen Browser so ein dann sehe ich im Wireshark eine korrekte Anfrage mit korrekter Zeichenübergabe. Vielleicht hat von euch Spezis eine Idee... Grüße, norticum
Nunja... KA, was C192.168.1.6:80 bedeuten soll.... KA, was du da tust.... Aber Der Vorgang & zu & ist mir gut bekannt. In PHP wird dieses mit htmlentities() erreicht. Und das ist durchaus berechtigt, wenn man die URLs in HTML Dokumenten unterbringt.
Hallo, es geht nur um den GET Request der URL. mit C192.168.1.6:80 connecte ich mich am Webserver. Ich habe einen Lantronix XPort und sende die URL über die RS232. Der XPort macht dann den GET Request daraus. Leider macht der auch aus meinem über die RS232 gesendeten "&" Zeichen ein "$amp;" das der Webserver nicht versteht. Auf den Webserver habe ich keinen Einfluss sonst hätte ich das ja auch im Webserver ändern können. Die Frage ist was ich machen/ändern muss damit der XPort mein "&" Zeichen nicht verdreht..... Grüße, norticum
Das Teil "HTML escape"-encodiert die URL. Damit werden HTML-Sonderzeichen in Texten übertragen. Eigentlich sollte er "URI escape" encodieren. Dabei werden in der URL Sonderzeichen durch % und zweistelligen Hexwert ersetzt, z.B. Leerzeichen durch %20. Noch eigentlicher sollte er die URL-Syntax garnicht verändern.
Und Doku + FAQ schweigen sich (nach 2 min Recherche) über diesen Umstand aus.
norticum schrieb: > Your browser sent a request that this server could not > understand.<p><pre>GET Ho > st: http://192.168.1.6/cgi-bin/npcgi?msg=Test&no=669&bp=3 > HTTP/1.1 Das ist nur so, weil die übergebene URL eben in einer HTML-Seite als Fehlermeldung dargestellt wird. Und da man in HTML mit & Entities einleitet, muss ein & als Zeichen eben als & kodiert werden. Es ist wirklich nur für die Anzeige. Der Server kodiert nix um. Ich glaube eher, dass dein Problem in "GET Host: http://192.168.1.6/blafoo <newline> HTTP/1.1" liegt, so sieht ein HTTP-Request nämlich nicht aus und deshalb wirft er "could not understand". Eher "GET /blafoo HTTP/1.1 <newline> Host: 192.168.1.6 <newline><newline>". ("GET http://..." wird nur verwendet wenn du dich zu einem Proxy verbindest, aber auch dann steht kein "Host:" zwischen GET und der Adresse.)
Auf %26 HEX und %38 Dezimal wäre ich auch schon gekommen.... das versteht aber der Webserver wieder nicht. Es ist ein Cherokee Webserver Version 1.2.1.....
@foo Ein riesiges FETTES Danke ganz besonders an Dich!!! Natürlich auch an Bastler und Ulrich F. Es klappt!!! Also nochmal zusammen gefasst: Mit C192.168.1.6:80 connecten, es kommt ein "C" für connected zurück dann den GET Request wie nachfolgend dargestellt übermitteln: GET /cgi-bin/npcgi?&msg=Test&no=669&bp=3 HTTP/1.1\r\nHost: 192.168.1.6\r\n\r\n Kaum macht mann es richtig funktioniert es auch :-) Danke nochmal!!! Grüße, norticum
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.