get http stuff ohne webGadget

Anfängerfragen zum Programmieren mit PureBasic.
broozar
Beiträge: 97
Registriert: 08.03.2010 15:53
Wohnort: Berlin
Kontaktdaten:

Re: get http stuff ohne webGadget

Beitrag 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?
iMac 27" quad i7 radeon 4850 8gig ram
PB 4.4 in parallelsVM @ 2 cores 3072megs ram 32megs vram win7
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: get http stuff ohne webGadget

Beitrag 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 :)
broozar
Beiträge: 97
Registriert: 08.03.2010 15:53
Wohnort: Berlin
Kontaktdaten:

Re: get http stuff ohne webGadget

Beitrag 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$
iMac 27" quad i7 radeon 4850 8gig ram
PB 4.4 in parallelsVM @ 2 cores 3072megs ram 32megs vram win7
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: get http stuff ohne webGadget

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Little John

Re: get http stuff ohne webGadget

Beitrag von Little John »

DarkDragon hat geschrieben:302 ist eine Weiterleitung auf die neue "Location".
In dem Fall hilft ja bekanntlich die Funktion RealURL(). 8)

Gruß, Little John
broozar
Beiträge: 97
Registriert: 08.03.2010 15:53
Wohnort: Berlin
Kontaktdaten:

Re: get http stuff ohne webGadget

Beitrag 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)
iMac 27" quad i7 radeon 4850 8gig ram
PB 4.4 in parallelsVM @ 2 cores 3072megs ram 32megs vram win7
Antworten