2010-07-18 3 views
0

я напечатал этот код:Необработанный http-запрос: почему я получаю ошибку 400 Bad Request?

p: open tcp://rebol.com:80 
insert p "HEAD/HTTP/1.1 ^/" 
insert p "Host: rebol.com/ ^/^/" 
while [data: copy p][prin data] 

Первая строка вывода 400 Bad Request

>> p: open tcp://rebol.com:80 
>> insert p "HEAD/HTTP/1.1 ^/" 
>> insert p "Host: rebol.com/ ^/^/" 
>> while [data: copy p][prin data] 
HTTP/1.1 400 Bad Request 
Date: Sun, 18 Jul 2010 12:10:49 GMT 
Server: Apache/1.3.42 (Unix) PHP/4.4.9 mod_log_bytes/1.2 mod_bwlimited/1.4 mod_auth_passthrough/1.8 FrontPage 
/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.8e-fips-rhel5 
Connection: close 
Content-Type: text/html; charset=iso-8859-1 

>> 

Почему я получаю 400 Bad Request?

ответ

1

Я считаю, что заголовок хоста может не иметь конечной косой черты.

1

Simon правый, думаю.

Это делает то, что вы хотите, я думаю:

p: open tcp://rebol.com:80 
insert p "HEAD/HTTP/1.1 ^/" 
insert p "Host: rebol.com^/^/" 
while [data: first p][prin data] 

    HTTP/1.1 200 OK 
    Date: Sun, 18 Jul 2010 12:28:19 GMT 
    Server: Apache/1.3.42 (Unix) [.....] 
    Last-Modified: Thu, 15 Jul 2010 18:59:21 GMT 
    ETag: "3d0121-1c2a-4c3f5a89" 
    Accept-Ranges: bytes 
    Content-Length: 7210 
    Content-Type: text/html 

Это, пожалуй, еще один способ:

p: open http://rebol.com 
probe p/locals/headers 
make object! [ 
    Date: "Sun, 18 Jul 2010 12:30:34 GMT" 
    Server: {Apache/1.3.42 (Unix) [....] 
    Last-Modified: "Thu, 15/Jul/2010/18:59:21/+GMT" 
    Accept-Ranges: "bytes" 
    Content-Encoding: none 
    Content-Type: "text/html" 
    Content-Length: "7210" 
    Location: none 
    Expires: none 
    Referer: none 
    Connection: "close" 
    Authorization: none 
    ETag: {"3d0121-1c2a-4c3f5a89"} 
]