Forum: Mikrocontroller und Digitale Elektronik HTTP Request (Wie kann ich es machen?)


von R.Pablo (Gast)


Lesenswert?

Hallo alle,
ich arbeite ja seite einige zeit mit dem XPort AR und jetzt versuche ich 
den XPort mit einem andere web server zu verbinden bis da keine problem 
gehabt. nach die Verbindung will ich einige datei from dem web server 
holen und da kommt der Mikrocontroller im spiel. ich weissse das um die 
Daten im Web zu holen muss ich eine HTTP Request machen. und da habe ich 
noch keine erfahrung.
kann jemand mir sagen wie ich ein solche request machen kann. oder wo 
ich die Litteratur darüber finden kann
N.B.: Der Mikrocontroller der ich benutze ist die ATmega16 von ATmel und 
die Programme schreibe ich im C.

Ich danke Ihnen im voraus für Ihre Hilfe
MFG
Pablo

von O. D. (odbs)


Lesenswert?


von O. D. (odbs)


Lesenswert?

> telnet www.mikrocontroller.net 80

Trying 88.198.17.227...
Connected to www.mikrocontroller.net.
Escape character is '^]'.

> GET / HTTP/1.0
>

HTTP/1.0 404 Not Found
Date: Fri, 26 Oct 2007 10:44:52 GMT
Server: LiteSpeed
Connection: close
Cache-Control: private, no-cache, max-age=0
Pragma: no-cache
Content-Type: text/html
Content-Length: 390

<html>
<head><title> 404 Not Found
</title></head>
<body><h1> 404 Not Found
</h1>
...

von R.Pablo (Gast)


Lesenswert?

Halloo!!
ich verstee nicht was du geschrieben hast. kannst du das einbischen 
ausführliche machen Bitte Oliver.
Danke

von R.Pablo (Gast)


Lesenswert?

Hallo!
hat jemand eine idee?
ich brauche Ihre Hilfe
MFG
Pablo

von Rahul D. (rahul)


Lesenswert?


von Icke M. (Firma: my-solution) (hendi)


Lesenswert?

Requests machst du über GET oder Post. Bei GET werden deine Parameter in 
die Adresse verpackt, bei POST an die Html File angehängt. Du könntest 
zum Beispiel mit GET ein Skript auf dem Server aufrufen, dass dir deine 
Daten übergibt, oder direkt die Dateien ansprechen? Gesendet wird als 
String, mit carriage return und line feed, wenn man sich genau an die 
spec hält, verpackt in TCP/IP, verpackt in Ethernet. Das heißt für deine 
Antworten erhälst du einen gewissen Nachrichtenoffset, falls du auf 
unterster Ebene arbeitest. Ansonsten kann ich dir den Fiddler2 
empfehlen, das ist ein freier Webdebugger, der als zusätzliche 
Schnittstelle zwischen Client und Server fungiert. Damit kannst du z.B. 
auch erst mal auslesen wie z.B. eine Googleanfrage realisiert ist oder 
ähnliches, ich denke das hilft dir weiter.
Wer fragt eigentlich? Der Xport, oder der uC?

von Rahul D. (rahul)


Lesenswert?

>Wer fragt eigentlich? Der Xport, oder der uC?

Steht do oben: Mit dem XPORT soll ein anderer Webserver angesprochen 
werden.

von Simon K. (simon) Benutzerseite


Lesenswert?

Icke Muster wrote:
> bei POST an die Html File angehängt.

An welches Html-File? Man schickt doch einen POST-Request. Da gibt es 
nur den POST-Header und eben die Parameter. Aber doch kein Html-File.

von R.Pablo (Gast)


Lesenswert?

der Mikrocontroller schickt der HTTP request zum XPort und der XPort 
sollt sich mit ein bestimmte website verbinden und dort daten holen und 
per serielle zum Mikrocontroller weiter schicken. da ist ein Beispiel 
das ich machen will. aber ich habe keine Ahnung wie ich diese request 
schreiben kann
MFG
Pablo

von Tim (Gast)


Lesenswert?

Der Xport muss sich mit dem Webserver auf Port 80 verbinden.
Danach schickst du
GET /dateiname HTTP/1.0\n\n
an den Webserver (der 2. Zeilenumbruch schliest den Request ab und der 
Webserver antwortet).
Wenn du noch Daten zum Webserver senden willst, häng sie an den 
Dateinamen an:
GET /index.html?hallo=welt&ich=hier HTTP/1.0\n\n

Da Heutzutage die meisten Webserver mehr als eine Domain bedienen 
(Vhost) must du eventuell noch angeben welche Domain du haben willst:
Host: www.mikrocontroller.net

Im ergebniss also:
GET /topic/82044 HTTP/1.0
Host: www.mikrocontroller.net


[Leifert dir diesen Thread]

Zum testen kann man (wie oben erwähnt) telnet benutzen.

von Paul Z. (alohaman)


Lesenswert?

Hallo,

mir ist in diesem Zusammenhang noch nicht ganz klar, wie die 
Implementierung eines HTTP-GET-Requests auf dem XPort-AR abläuft. Muss 
ich das HTTP selbst implementieren oder gibt es direkt eine 
schnittstelle in den CLI-commands?? also eine art GET-Kommando so wie 
bei Telnet?

Ich weiß es gibt Befehle für TCP-Vebindungen. Über die könnte ich mir 
das HTTP-Protokoll selber zusammenbauen und so eine Verbindung über Port 
80 am Webserver erstellen. Oder geht es eben doch einfacher?

Danke!

von VB-Hasser (Gast)


Lesenswert?

Paul Zeman schrieb:
> also eine art GET-Kommando so wie
> bei Telnet?

Telnet hat kein GET-Kommando. Hier wird telnet als mehr oder weniger 
transparente Konsole<->TCP Brücke verwendet.
Genauso kannst du den XPort als Seriell<->TCP Brücke verwenden.

Also: Probier das mit dem Telnet mal aus. Wenn du's verstanden hast:

Alles was du auf der Tastatur eingetippt hast, musst du (bzw der µC) 
nacher an den XPort senden (nach dem Verbindungsaufbau)

von Paul Z. (alohaman)


Lesenswert?

Vielen Dank!

Werd ich mich gleich mal dahinter setzen!

LG

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
Noch kein Account? Hier anmelden.