amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > httpget per dos.library (BAS) [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

16.02.2008, 10:04 Uhr

MaikG
Posts: 5172
Nutzer
Ich habe mir irgenwann mal einen C-Source runtergeladen
womit man sich eine http Seite holen kann. Hab versucht
daraus ein Basic Programm zu machen, ging aber nicht.
Dann hab ich hier ein Rexx Source gefunden, der scheint
aber auch nicht anders zu funktionieren.

Mein Code bleibt bei Read hängen, bis ich Genesis beende.
Was mach ich da falsch?

code:
MyMemory&=AllocVec(1000, MEMF_CLEAR)

Mycommand$="GET /index.html HTTP/1.0"+CHR$(&h0D)
Mycommand2$=CHR$(&h0D)

fh& = xOpen&(SADD("tcp:www.amiga-news.de/80"+CHR$(0)), MODE_READWRITE&)
IF fh& THEN
 junk& = xWrite&(fh&,SADD(MyCommand$+CHR$(0)),LEN(MyCommand$))
 junk& = xWrite&(fh&,SADD(MyCommand2$+CHR$(0)),LEN(MyCommand2$))

 junk& = xRead&(fh&,MyMemory&,2)
 PRINT junk&

 junk& = xClose&(fh&)
ELSE PRINT "OPEN fail"
END IF

PRINT PEEK$(MyMemory&)

FreeVec MyMemory&


[ - Antworten - Zitieren - Direktlink - ]

16.02.2008, 10:24 Uhr

thomas
Posts: 7717
Nutzer
@MaikG:
Zitat:
Mycommand$="GET /index.html HTTP/1.0"+CHR$(&h0D)

Am Zeilenende muß CR *und* LF kommen. Also +CHR$(&h0D)+CHR$(&h0A).

Bei ARexx wird mit WriteLn (write line) gearbeitet, das hängt automatisch ein Linefeed an, deshalb muß man sich nur um das CR selbst kümmern. Wenn du mit Write (das heißt bei ARexx WriteCh / write characters) arbeitest, dann wird nichts angehängt.

Zitat:
junk& = xWrite&(fh&,SADD(MyCommand$+CHR$(0)),LEN(MyCommand$))

Wenn du die Länge angibst, mußt du keine 0 anhängen, das verwirrt nur.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

16.02.2008, 12:59 Uhr

MaikG
Posts: 5172
Nutzer
Cool, danke. Und wenn ich jetzt 5000 Bytes hole und nur 4000
da sind kommt Read trotzdem zurück?

[ - Antworten - Zitieren - Direktlink - ]

16.02.2008, 15:09 Uhr

thomas
Posts: 7717
Nutzer

Ja. Meistens bekommst du nur eine oder zwei Zeilen oder nur den Header oder so zurück. Du mußt also weiterlesen, auch wenn du weniger bekommst, als du angefordert hast, bis du wirklich alles hast, also bis einmal 0 Bytes zurückkommen. Es sei denn, dich interessiert nicht, was da noch kommt, z.B. wenn du nur die Uhrzeit aus den Kopfzeilen auslesen möchtest, dann brauchst du natürlich nicht weiterlesen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

16.02.2008, 18:00 Uhr

MaikG
Posts: 5172
Nutzer
Alles klar es klappt, danke nochmal.

[ - Antworten - Zitieren - Direktlink - ]

17.02.2008, 15:54 Uhr

MaikG
Posts: 5172
Nutzer
So seiten ohne index.html, weiss nicht vermutlich PHP oder so
bekommt man damit aber nicht oder?

Kann immer nicht geöffnet werden...

[ - Antworten - Zitieren - Direktlink - ]

17.02.2008, 16:24 Uhr

thomas
Posts: 7717
Nutzer

Wieso ? Was hast du denn hinter GET angegeben ?

GET / HTTP/1.0

Das sollte immer gehen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

17.02.2008, 17:51 Uhr

MaikG
Posts: 5172
Nutzer
Nur was da oben auch steht also mit 0A. z.b.:


fh& = xOpen&(SADD("tcp:www.amiga-news.de/forum/80"+CHR$(0)), MODE_READWRITE&)

[ - Antworten - Zitieren - Direktlink - ]

17.02.2008, 17:57 Uhr

thomas
Posts: 7717
Nutzer

Um

http://server/pfad

zu holen,

öffnest du

tcp:server/80

und forderst

/pfad

an.

Hinter tcp: kann man keinen Pfad angeben.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

17.02.2008, 18:01 Uhr

MaikG
Posts: 5172
Nutzer
Okay, dann bekomme ich einen

400 Bad Request (Invalied Hostname)


Nur bei amiga-news scheint das zu gehen.

[ Dieser Beitrag wurde von MaikG am 17.02.2008 um 18:05 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.02.2008, 18:39 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Okay, dann bekomme ich einen

400 Bad Request (Invalied Hostname)

Nur bei amiga-news scheint das zu gehen.


Du verschickst einen HTTP 1.0 Request. Der funktioniert nicht mit virtuellen Servern, wie sie heutzutage bei jedem Massen-Hoster anzutreffen sind. Dafür musst Du einen HTTP 1.1-Header verwenden.

Der sieht dann z.B. so aus:
HTTP code:
GET /index.html HTTP/1.1
Host: amiga-news.de

...


mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

18.02.2008, 23:13 Uhr

MaikG
Posts: 5172
Nutzer
>Du verschickst einen HTTP 1.0 Request. Der funktioniert nicht mit
>virtuellen Servern, wie sie heutzutage bei jedem Massen-Hoster
>anzutreffen sind. Dafür musst Du einen HTTP 1.1-Header verwenden.

Und wenn das nicht geht?
Gibts da noch was anderes?


[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 10:46 Uhr

thomas
Posts: 7717
Nutzer
@MaikG:

http://www.google.de/search?hl=de&q=rfc+http&meta=

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 15:59 Uhr

MaikG
Posts: 5172
Nutzer
Ich seh da nur 1.0 und 1.1 oder kann man auch RFC eingeben?
Hab von HTTP zeugs doch keinen schimmer.

[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 16:35 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von MaikG:
Ich seh da nur 1.0 und 1.1 oder kann man auch RFC eingeben?

Mehr gibt's auch nicht.
Zitat:
Hab von HTTP zeugs doch keinen schimmer.
Dann fang an zu lesen. Wie wär's mit http://de.wikipedia.org/wiki/HTTP als Einstieg?

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

19.02.2008, 17:57 Uhr

MaikG
Posts: 5172
Nutzer
>Mehr gibt's auch nicht.


Dann ist es doch eine TCP: einschränkung?



>Dann fang an zu lesen. Wie wär's mit http://de.wikipedia.org/wiki/HTTP
>als Einstieg?

Okay, liefert aber keine lösung fürs Problem.
bei TRACE kommt das selbe wie bei GET.

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > httpget per dos.library (BAS) [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.