amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > httpget per dos.library (BAS) [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2008-02-16, 10:04 h

MaikG
Posts: 5172
User
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&


[ - Answer - Quote - Direct link - ]

2008-02-16, 10:24 h

thomas
Posts: 7718
User
@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/

[ - Answer - Quote - Direct link - ]

2008-02-16, 12:59 h

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

[ - Answer - Quote - Direct link - ]

2008-02-16, 15:09 h

thomas
Posts: 7718
User

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/

[ - Answer - Quote - Direct link - ]

2008-02-16, 18:00 h

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

[ - Answer - Quote - Direct link - ]

2008-02-17, 15:54 h

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

Kann immer nicht geöffnet werden...

[ - Answer - Quote - Direct link - ]

2008-02-17, 16:24 h

thomas
Posts: 7718
User

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/

[ - Answer - Quote - Direct link - ]

2008-02-17, 17:51 h

MaikG
Posts: 5172
User
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&)

[ - Answer - Quote - Direct link - ]

2008-02-17, 17:57 h

thomas
Posts: 7718
User

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/

[ - Answer - Quote - Direct link - ]

2008-02-17, 18:01 h

MaikG
Posts: 5172
User
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. ]

[ - Answer - Quote - Direct link - ]

2008-02-18, 18:39 h

Holger
Posts: 8116
User
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.

[ - Answer - Quote - Direct link - ]

2008-02-18, 23:13 h

MaikG
Posts: 5172
User
>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?


[ - Answer - Quote - Direct link - ]

2008-02-19, 10:46 h

thomas
Posts: 7718
User
@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/

[ - Answer - Quote - Direct link - ]

2008-02-19, 15:59 h

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

[ - Answer - Quote - Direct link - ]

2008-02-19, 16:35 h

Holger
Posts: 8116
User
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.

[ - Answer - Quote - Direct link - ]

2008-02-19, 17:57 h

MaikG
Posts: 5172
User
>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.

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > httpget per dos.library (BAS) [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.