Seite 2 von 2
Re: get http stuff ohne webGadget
Verfasst: 09.03.2010 00:30
von broozar
nein, die IP war nur das simpelste, was mir so einfiel. am ende will ich ein php-skript abfragen, das ne menge werte (bis zu 1300) aus einer mysql datenbank holt, die dann parsen und in mein programm verbauen. deshalb wollte ich auch nicht den umweg übers downloaden gehen (siehe 1. post).
danke für den tipp, deine lösung ist für so was simples wie die IP sicherlich die wesentlich handlichere.
ist thread killen für timeout nun schlechter stil oder legitim?
Re: get http stuff ohne webGadget
Verfasst: 09.03.2010 00:43
von ts-soft
Ich nutze für solche Sachen die Include von luis:
http://www.purebasic.fr/english/viewtop ... 99#p217199
Ist zwar im ersten Moment etwas schwer zu verstehen, aber geht dann ganz einfach

Re: get http stuff ohne webGadget
Verfasst: 09.03.2010 22:23
von broozar
ok, dieses 302 macht mir zu schaffen.
mit gethttpheader bekomme ich:
HTTP/1.1 200 OK
Date: Tue, 09 Mar 2010 20:16:05 GMT
Server: Apache
Content-Type: text/html
... aber das erhalte ich mit eurem code:
HTTP/1.1 302 Found
Date: Tue, 09 Mar 2010 20:16:05 GMT
Server: Apache
Location: was seltsames, linkt auf eine dummy-seite des providers
Content-Length: 235
Connection: close
Content-Type: text/html; charset=iso-8859-1
jede hilfe ist willkommen.
EDIT: habe rausgefunden, dass der server auf folgende Anfrage positiv reagiert:
(konsolen-input / netcat)
nc server_name 80
GET /site_name HTTP/1.1
Host: server_name
leider funktioniert das nicht in der folgenden PB-syntax
"GET /"+SiteName$+" HTTP/1.1"+#LFCR$+"Host: "+ServerName$+#LFCR$+#LFCR$
Re: get http stuff ohne webGadget
Verfasst: 10.03.2010 12:31
von DarkDragon
broozar@web.de hat geschrieben:ok, dieses 302 macht mir zu schaffen.
mit gethttpheader bekomme ich:
HTTP/1.1 200 OK
Date: Tue, 09 Mar 2010 20:16:05 GMT
Server: Apache
Content-Type: text/html
... aber das erhalte ich mit eurem code:
HTTP/1.1 302 Found
Date: Tue, 09 Mar 2010 20:16:05 GMT
Server: Apache
Location: was seltsames, linkt auf eine dummy-seite des providers
Content-Length: 235
Connection: close
Content-Type: text/html; charset=iso-8859-1
jede hilfe ist willkommen.
EDIT: habe rausgefunden, dass der server auf folgende Anfrage positiv reagiert:
(konsolen-input / netcat)
nc server_name 80
GET /site_name HTTP/1.1
Host: server_name
leider funktioniert das nicht in der folgenden PB-syntax
"GET /"+SiteName$+" HTTP/1.1"+#LFCR$+"Host: "+ServerName$+#LFCR$+#LFCR$
302 ist eine Weiterleitung auf die neue "Location".
CRLF, nicht LFCR.
Re: get http stuff ohne webGadget
Verfasst: 10.03.2010 16:23
von Little John
DarkDragon hat geschrieben:302 ist eine Weiterleitung auf die neue "Location".
In dem Fall hilft ja bekanntlich die Funktion
RealURL().
Gruß, Little John
Re: get http stuff ohne webGadget
Verfasst: 11.03.2010 01:30
von broozar
DarkDragon hat geschrieben:
302 ist eine Weiterleitung auf die neue "Location".
i know. was aber tun, wenn in "location" ein sinnloser link auf eine werbeseite des providers steht? Da hilft auch Little Johns Hinweis auf RealURL() wenig... da war wohl der request käse, denn jetzt wird es peinlich...
DarkDragon hat geschrieben:CRLF, nicht LFCR.
...bumm, problem gelöst. aww. danke. note an user stargate: solltest du in deinem code aufnehmen. warum es mit dem einen beispielserver auch mit LFCR funktioniert hat, weiß ich nicht... aber CRLF scheint bei beiden zu gehen.
letzte Frage zu diesem thema, nur aus interesse: ich kann den request als HTTP/1.1 senden und als HTTP/1.0. 1.0 ist die antwort quasi instant da, 1.1 lässt sich ewig zeit... ist das normal?
EDIT: geänderter code:
Code: Alles auswählen
SendNetworkString(ConnectionID, "GET /"+SiteName$+" HTTP/1.0"+#CRLF$+"Host: "+ServerName$+#CRLF$+#CRLF$)
[...]
Inhalt = FindString(String$, #CRLF$+#CRLF$, 1)
If Inhalt
ProcedureReturn Mid(String$,Inhalt+4)