On Tue, 07 Mar 2006 13:36:46 +0300
"Oleg Shumsky" <CGatePro@mx.ru> wrote:
> Здравствуйте.
>
>
>>> Что реально пишет CGI скрипт? Какой Content-type у ответа? >>> >>>> Что мне нужно сделать в CG/PL, чтобы получить из этого удобоваримую >>>> строку ? ObjectoText(params.body) возвращает тоже самое. TextToObject >>>> возаращает пустую строку. >>> >> >> HTTPCall не возвращает строки. [<base64>] - это представление >> datablock. То есть он возвращает datablock. >> >> Например, если вы возвращаете audio/wav - то такой datablock можно >> отдать функции PlayFile(). А если вы вернули какой-то текст, то >> datablock можно превратить в текстовую "строку" функцией String().
Да, STRING(data) создаёт текстовое представление этой data (то есть всё тот же [xxxx]), это я ошибся.
> вот команды в cg/pl:
>
> paramshttp = NewDictionary();
> syslog(paramshttp);
> resulthttp = HTTPCall("http://xx.xx.xx.xx/cgi-bin/test.cgi",paramshttp);
> if resulthttp != null then
Тут должно было быть
if IsDictionary(resultHttp) then
> syslog(resulthttp);
> syslog(String(resulthttp.body));
> else
> syslog("HTTP Error Result: " + resulthttp);
> end if;
>
>
> Вот лог:
>
> 13:21:23.01 5 HTTPO-00055 inp: HTTP/1.1 200 OK
>
>> 13:21:23.01 5 HTTPO-00055 inp:
> 13:21:23.01 5 HTTPO-00055 inp: Date: Tue, 07 Mar 2006 10:21:22 GMT
> 13:21:23.01 5 HTTPO-00055 inp: Server: Apache/1.3.34 (Unix) mod_perl/1.29
> 13:21:23.01 5 HTTPO-00055 inp: Content-length: 3
> 13:21:23.01 5 HTTPO-00055 inp: Keep-Alive: timeout=15, max=100
> 13:21:23.01 5 HTTPO-00055 inp: Connection: Keep-Alive
> 13:21:23.01 5 HTTPO-00055 inp: Content-Type: text/html
> апач на самом деле возвращает строку вида "a=b"
>
> В body мы видим эту строку в base64.
>
> в скрипте на cg/pl есть слудующая команда:
>
> syslog(String(resulthttp.body));
>
> в логе мы видим
>
> 13:21:23.01 2 PBXLEG-00416 ProgramLog: "[YT1i]"
> Вопрос: как мне получить "a=b" ?
Так - никак (пока). Надо возвращать не просто текст, а именно какое-то
данное, которое Вам нужно - строку, массив, IP address, и так далее. Для
чего
Ваш "Апач" должен выдавать не
a=b
а
"a=b"
И тогда TextToObject(resulthttp.body) выдаст Вам (считает) этот об"ект.
Но мы, наверное, сделаем всё-таки, чтобы String(datablock) выдавал содержимое этого блока как String (до первого нуля в этом блоке, если таковой имеется).
> Oleg V. Shumsky
> Corbina Telecom NOC, VoIP Dept. Ph.: +7 495 7284000, ext. 2174, ICQ:
>110474048
Sincerely,
Vladimir
Получено Tue Mar 07 11:41:18 2006
Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:14:47 MSK