Форум » [x]Harbour » Подключение по HTTP » Ответить

Подключение по HTTP

Dima: Что за либа мне нужна ? Ни когда ранее с этим не работал. Из доки по API приложения. [pre2] Пример для GET запроса: http://api.xxxxx.ua/WebSky/service.php/ConnectToServer?login=test&pass=test&tz=-180 В случае правильного логина и пароля и успешного подключения также возвращается HTTP cookie с параметрами сессии, для использования при отсылке следующих запросов. При успешном коннекте должен быть получен ответ «ок» - подключение прошло успешно. [/pre2] Собственно как слать такие запросы и как ловить ответы ?

Ответов - 33, стр: 1 2 All

Dima: Петр пишет: А если установить hb_cdpSelect( "UTF8" ) какой результат получится? Тогда все нормально. Будет в UTF8. Такое впечатление что возврат идет в кодировке установленной мануально.

Петр: Dima пишет: Такое впечатление что возврат идет в кодировке установленной мануально. Это как? Так и есть: msxml оперирует данными в U16, через механизм ole и виртуальную harbour машину, кодировка приводится к вот этой самой "установленной мануально". Как это работает можете рассмотреть в olecore.c. А можете не рассматривать - примите как факт.

Dima: Ясно...буду пока юзать костыль )) hb_cdpSelect( "UTF8" ) cc:=xmldoc:responseText hb_cdpSelect( "RU866" ) Работает.


Петр: Dima пишет: Ясно...буду пока юзать костыль Вот это не костыль. Так работает поддержка национальных кодировок в harbour. Зачем сразу в RU866 переходить?

Dima: Петр пишет: Зачем сразу в RU866 переходить? Ну как бы базы в ней живут да и код сырцов.

Петр: Понятно, по привычке. Я думал, проблемы с разбором строк, в harbour куча функций для работы с строками UTF8 и Unicode, привыкнуть можно.

Dima: Петр Спасибо за желание помочь !

fil: Dima, смог ли ты получить XML-документ (responseXML) ? Я делаю так ........................................... ohttp:setRequestHeader( 'Content-Type', 'text/xml') ohttp:Send(NIL) do while .T. if ohttp:readyState=4.and.ohttp:Status=200 ? ohttp:getResponseHeader("content-type") - возвращает 'text/html', ну и соответственно responseXML - nill. В чем засада не пойму

Dima: fil У меня так примерно [pre2] xmldoc:open("POST", HQuery["Curl"]+HQuery["Disconnect"], .f.) xmldoc:Send() ntime:=Seconds() do while xmldoc:ReadyState != 4 hb_releaseCPU() if ABS( Seconds() - nTime ) >= ntimeout ret[3]:="Сервер не отвечает" xmldoc:abort() xmldoc := NIL return ret endif enddo cret:=xmldoc:responseText [/pre2] c этим я игрался ohttp:setRequestHeader( 'Content-Type', 'text/xml' , и наигравшись забил )

fil: Ну responseText мне ни к чему. Хотел добраться до responseXML-документа и парсить его посредством DOM. Побьюсь еще. Уж больно неохота через ActiveX делать

Dima: Dima пишет: cret:=xmldoc:responseText Так я тут XML и получаю.

fil: Ты получаешь XML-левский текст, а мне нужен Document Object Model (DOM) страницы. Или я чего не понял ?

Dima: fil пишет: Ты получаешь XML-левский текст да fil пишет: а мне нужен Document Object Model (DOM) страницы. Тут ни чего не скажу , не юзал



полная версия страницы