Quando chamo o mesmo método Read(), após um Post(), por exemplo, esse problema não ocorre.
Estou usando exemplos da HBTip que acompanham o Harbour 3.2, para tentar consumir uma API REST desenvolvida em PHP. A solução que encontrei para o problema foi suprimir esses três bytes iniciais, invocando a função substr(). Mas, gostaria de entender melhor a causa. Talvez, eu não esteja sabendo utilizar o método de forma correta.
Trecho de exemplo de meu código onde o problema acontece:
Código: Selecionar todos
oHTTP := TIPClientHttp():new( oURL )
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
Código: Selecionar todos
oHTTP := TIPClientHttp():new( oURL )
oHTTP:setCookie(cSessaoAtiva)
IF oHTTP:Open()
IF oHTTP:Post( hb_jsonEncode( hLogin ) )
cJSON := oHttp:read()
? oHTTP:getcookies()
ELSE
? "Etapa #2 Error:", "oHTTP:Post()", oHTTP:lastErrorMessage()
ENDIF
oHTTP:Close()
ELSE
? "Etapa #2 Error:", "oHTTP:Open()", oHTTP:lastErrorMessage()
ENDIF

