Rebol HTTP-схема действительно не разработана с учетом этого, она ориентирована на чтение контента так, как вы бы в браузере, а не через HTTP.
В высказывании, что, вы можете взломать протокол ниспровергать, как Rebol 2 обрабатывает различные коды ответа:
in-http-scheme: func [does [block!]][
do bind :does bind? last body-of get in system/schemes/http/handler 'open
]
in-http-scheme [
remove-each [code response] response-actions [find [400 403 404] code]
append response-actions [400 success 403 success 404 success]
]
Оговорки здесь является то, что протокол HTTP должен быть инициировано (любой HTTP порт открыт/читать).response-actions
может быть доступен, когда HTTP не были инициированы:
select body-of get in system/schemes/http/handler 'open quote response-actions:
Вы можете получить последнюю строку ответа, таким образом:
in-http-scheme [response-line]
В качестве альтернативы вы будете нуждаться схемой предназначена для обслуживания более HTTP. У меня есть REST protocol (две версии, одна из которых uses cURL, и одна, которая использует customised HTTP scheme, которая работает, но не так хороша). Хотя для Rebol 2. У меня есть планы на версию Rebol 3.
Спасибо за ваш ответ Крис. Одна маленькая точка, как Firefox, так и Chrome отображает контент ответа HTTP, хотя он имеет код ответа 404. В IE9 отображается стандартное сообщение, не найденное. Я предполагаю, что это случай, когда сеть продвинулась, но не все до сих пор догнали. Подключение через TCP кажется лучшим вариантом для моего варианта использования. –
Действительно, я должен был предусмотреть «способ, которым вы были бы в браузере 15 лет назад». – rgchris