Когда я вызываю метод Read, сразу после Open класса TIPClientHttp, я получаю строку JSON со страницы PHP. Тем не менее, я заметил, что появляются три байта странных символов, которые предшествуют желаемым данным. Это происходит с одним URL-адресом, а с другим - нет.
Я использую примеры HBTIP, языка xBase Project Harbour 3.2, чтобы попытаться использовать REST API, разработанный в PHP. Решение, которое я нашел для этой проблемы, состояло в том, чтобы подавить эти три начальных байта, вызвав функцию Substr. Но я бы хотел лучше понять причину. Может быть, я не знаю, как правильно использовать метод. Также может быть, что проблема в API.
Пример выдержки из моего кода, где возникает проблема:
oHTTP := TIPClientHttp():new( "http://localhost/api/index.php/clients" )
oHTTP:setCookie(cSessaoAtiva)
oHTTP:hFields := hAuthBearer
if oHTTP:Open()
cJSON := oHttp:read()
cJSON := substr(cJSON,4) // Remove 3 bytes estranhos que aparecem
// no início da string, quando lida logo
// depois do método Open().
cSessaoAtiva := oHTTP:getcookies()
else
? "Etapa #1 Error:", "oHTTP:Open()", oHTTP:lastErrorMessage()
endif