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: 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: 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: 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:Mehr gibt's auch nicht. Zitat: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. |