2010-06-21 3 views
0

Я хотел бы получить размер файла удаленного файла с помощью Rebol, аналогично тому, как это done with php, , отправив запрос HTTP HEAD. Я не могу найти пример того, как это сделать в Rebol, но с помощью модуля Prot-http может быть подходящее место для запуска?Как отправить запрос главы http с помощью Rebol?

я попытался

read/custom URL [ HEAD "" ] 

возвращает "", а не заголовок.

ответ

1
>> trace/net on 
>> i: info? http://www.rebol.com/index.html 
URL Parse: none none www.rebol.com none none index.html 
Net-log: ["Opening" "tcp" "for" "HTTP"] 
connecting to: www.rebol.com 
Net-log: {HEAD /index.html HTTP/1.0 
Accept: */* 
Connection: close 
User-Agent: REBOL View 2.7.6.3.1 
Host: www.rebol.com 
} 
Net-log: "HTTP/1.1 200 OK" 
>> probe i 
make object! [ 
    size: 7091 
    date: 11-Jun-2010/21:12:49 
    type: 'file 
] 
+0

mucho gracias! Я набрал информацию о пробке? http://mirror.bytemark.co.uk/ubuntu-releases/lucid/ubuntu-10.04-desktop-i386.iso, и он дал желаемый размер файла: 733419520 –

+0

Кстати, я нашел это http: //www.mail -archive.com/[email protected]/msg09334.html, но по-прежнему не может видеть, как получить размер файла с помощью этого другого метода. Могу я ? –

+0

Наконец-то я нашел другое решение, см. Другой хороший ответ ниже. –

1

Это для R2, ​​но вы можете изучить исходный код,

http://rebol.wik.is/Protocols/Http

+0

Я не понимаю. Это прочитанный/настраиваемый URL [HEAD] "], который я должен использовать? он возвращает "", а не заголовок. –

+0

это 'read/custom http://www.rebol.com [HEAD" "]' , но это просто возвращает информацию о том, существует ли страница. –

1

Другим решением является

>> port: open tcp://mirror.bytemark.co.uk:80 
>> insert port "HEAD /ubuntu-releases/lucid/ubuntu-10.04-desktop-i386.iso HTTP/1.1 ^/" 
>> insert port "Host: mirror.bytemark.co.uk ^/^/" 
>> while [data: copy port][prin data] 
HTTP/1.1 200 OK 
Date: Tue, 22 Jun 2010 22:36:48 GMT 
Server: Apache/2.2.9 (Debian) 
Last-Modified: Thu, 29 Apr 2010 12:56:31 GMT 
ETag: "238046-2bb71800-4855fa7d53dc0" 
Accept-Ranges: bytes 
Content-Length: 733419520 
Content-Type: application/x-iso9660-image 

>>