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: 7718 Nutzer |
@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/ [ - 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: 7718 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: 7718 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: 7718 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: 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: 7718 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: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. [ - 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. |