PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HTTP nutzen aber wie?


drauf
06.08.2007, 15:47
hi jungs,

ich hab mich mal über http informiert und komm aber nicht auf die antwort wie ich das den jetzt nutzen kann? also welche programmiersprache muss/kann ich verwenden und wie das so abläuft? also auf der wiki seite ist alles gut beschrieben wie das http funktioniert aber eben nicht wie ich es nutzen kann.

kann mir einer helfen?


greetz drauf


DJFelipe
06.08.2007, 16:49
HTTP ist eine Protokollart.. keine Programmiersprache oder deresgleichen... 'Http ist geben und nehmen'
Sagen wir du willst ein Dokument aufrufen (http://www.web.de/index.php) dann würde dein REQUEST AN den Server ca. so aussehen:
GET /index.php HTTP/1.1
Host: www.web.de
User-Agent: Mozilla/4.0 (haumichtot irgendwas)
Connection: Close
Natürlich kann dieser variieren...

Der Server gibt auf diese Anfrage das Dokument index.php zurück:
HTTP XXX OK
....

Es ist also immer ein geben (du gibst einen Request auf für eine Datei) und ein nehmen (Antwort vom Server)

drauf
06.08.2007, 17:11
vielen dank, aber wie binde ich das jetzt z.b. in ein programm (C#) ein? das ist mein hauptproblem

Alpha2
06.08.2007, 18:31
vielen dank, aber wie binde ich das jetzt z.b. in ein programm (C#) ein? das ist mein hauptproblem

Der einfachste Weg ist es mit Curl (http://curl.haxx.se) zumachen.

drauf
09.08.2007, 16:34
cool danke ich werd mal schaun ob ich damit zurecht komme.

greetz drauf

Loader007
14.08.2007, 00:04
Ist eigentlcih leicht

zb damit würdest du auf ne seite gehn

sprintf (command, "GET %s%s HTTP/1.0\nHost: %s\n\n", path , file , host);


allerdings fällt mir da auch noch ne frage ein wenn das überhaupt geht ich muss ein Perlscript übersezen und haben da vogendes problem

Content-Length: ".length."

bei perl gibt es dieses ".length."
aber wie mach ich das in C oder brauche ich das garnet bei C enzugeben?

eViL_oNe
14.08.2007, 00:31
Für was genau brauchst du das Content-Length? Für den Request ist es ja nicht unbedingt erforderlich (es sei denn, man will per POST Daten an den Server schicken)...

in C wird man wohl zur Ermittlung der Größe einer Zeichenkette strlen(zeichenkette) verwenden ;)

PS: für die Verwendung von HTTP in C# würde sich natürlich System.Net.HttpWebRequest anbieten:

http://msdn2.microsoft.com/de-de/library/system.net.httpwebrequest(VS.80).aspx

dann braucht man auch keine Low-Level-Programmirrung mit Sockets etc zu betreiben ;)

Loader007
14.08.2007, 13:39
jo ich will was posten richtig.

weil get brauchich unter linux ja kaum da sich hier curl mehr anbietet
hasste da nen tip für mich wie ich das am besten mache amliebsten mit C !

Alpha2
14.08.2007, 20:50
jo ich will was posten richtig.

weil get brauchich unter linux ja kaum da sich hier curl mehr anbietet
hasste da nen tip für mich wie ich das am besten mache amliebsten mit C !
Hä ? Was hat get mit Curl zu tun ? mit Curl kannste get UND post nutzen...

Wenn du Curl richtig installiert hast ist das doch 'easy going'. Ich habe eine Klasse (weiss nicht obs sogar aus dem Forum war ;))


class CURL {
var $callback = false;

function setCallback($func_name) {
$this->callback = $func_name;
}

function doRequest($method, $url, $vars) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 45);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 25);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
if ($method == 'POST') {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
}
$data = curl_exec($ch);
curl_close($ch);
if ($data) {
if ($this->callback)
{
$callback = $this->callback;
$this->callback = false;
return call_user_func($callback, $data);
} else {
return $data;
}
} else {
//return curl_error($ch);
return 0;
}
}

function get($url) {
return $this->doRequest('GET', $url, 'NULL');
}

function post($url, $vars) {
return $this->doRequest('POST', $url, $vars);
}
}


Nun kann ich get/post ganz einfach nutzen

$Curl = new CURL( );
$Curl->post("www.test.de", "muh=wuff&miau=quak");


Das ist zwar PHP aber das ganze in C/C++ sollte kein problem sein udn so ähnlich aussehen.

Loader007
14.08.2007, 23:06
ich werde ma schauen das problem ist allerdings das ich lieber HTTP1.1 nehem würde das curl auch posten kann danke wuste cih noch garnet dachte kann nur laden aber wenn einer ne idee hat wie das anders geht währe das cool weil das prog ist eigentlich fertig muss nur noch das einbauen

eViL_oNe
15.08.2007, 20:45
wenn du satzzeichen benutzt hättest, wäre diese Frage/Aussage vielleicht verständlich gewesen *g*

Alpha2
16.08.2007, 12:32
wenn du satzzeichen benutzt hättest, wäre diese Frage/Aussage vielleicht verständlich gewesen *g*
FULL ACK !

Loader007
17.08.2007, 02:08
Jo sorry!!

habe damit manchma probleme bin nicht so gut in deutsch :( !