Что означают эти начальные 3 байта в ответе, прочитанном после метода Open класса TIPClientHttp? - PullRequest
0 голосов
/ 28 февраля 2020

Когда я вызываю метод 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
...