-
Тимохов Дима © (12.12.16 17:44) [0]Коллеги!
1. Пользуюсь WinInet.
После вызова InternetOpenUrl хочу определить статус: код и текст.WinInetHandle := InternetOpenUrl(...);
Код статуса определятся просто:HttpQueryInfo(WinInetHandle, HTTP_QUERY_STATUS_CODE or HTTP_QUERY_FLAG_NUMBER, @Status, Size, index)
Текст статуса тоже вроде просто:
Size := 1024;
SetLength(StatusText, Size);
if HttpQueryInfo(WinInetHandle, HTTP_QUERY_STATUS_TEXT, @StatusText[1], Size, 0) then
begin
SetLength(StatusText, Size);
... StatusText - текст статуса
end
, но есть сомнение...
2. Вопросы:
а. Верно так получать текст статуса во всех случаях?
б. Текст статуса может быть кириллицей? И как тогда его получать?
ЗЫ К RFC 2616 плз не отсылать. -
iop © (12.12.16 19:30) [1]во всех случаях статус текст так получать можно,
но не во всех получишь -
Тимохов Дима © (12.12.16 20:02) [2]
> iop © (12.12.16 19:30) [1]
Тебе скучно что-ли?
> Тимохов Дима © (12.12.16 17:44)
Поисследовал вопрос.
Ну вообще RFC 2616 в секции 6.1.1 Status Code and Reason Phrase говорит о том, что Reason-Phrase = *<TEXT, excluding CR, LF>, где TEXT = <any OCTET except CTLs, but including LWS>, где OCTET = <any 8-bit sequence of data>. Т.е. по идее сюда и кириллица может попасть, и UTF-8.
Коллеги-практики HTTP, как с клиентской стороны, так и с серверной: бывают Reason Phrase кириллическими? -
iop © (12.12.16 20:08) [3]там же черным по белому написано,
что все что обязательно - это класс кода ответа (первый символ)
на него и только на него надо реагировать.
остальные символы к могут быть кастомизированы в неуказанные в рфц значения.
и про ризон-фрейз тоже сказано, то в рфц перечислены рекомендованные значения статус-текста, и что никому не возбраняется локализовать их.
например возвращать статустекст в японских иероглифах или вообще сделать его пустым. -
iop © (12.12.16 20:10) [4]бывают Reason Phrase кириллическими?
да хоть древнеславянским или арамейским. -
Тимохов Дима © (12.12.16 20:30) [5]
> iop © (12.12.16 20:10) [4]
Спасибо, дорогой друг, ты мне очень помог. Честно)
Пришлось апачь и PHP поставить и кастомизированные заголовки возвращать для теста из PHP. Все верно - как в RFC-2616 и написано: любой TEXT из 8-битников он воспринимает (хоть кириллицу, хоть UTF-8), а дальше сам на клиенте решай, что с этим делать.
Еще раз спасибо.
Вопросов больше нет. -
ЯЧтсия (09.01.17 14:48) [6]Удалено модератором