Closed benrojas01 closed 1 year ago
Hola. Acá tenemos dos temas:
a) En los headers del request estas incluyendo la linea Accept-Encoding: gzip
, lo que causa que la respuesta devuelta por el webservice venga comprimida con GZIP... esa es la razón de los caracteres ratos que estas recibiendo. En Potsman obtienes el resultado esperado porque ese programa esta preparado para descomprimir automáticamente las respuestas que llegan comprimidas con GZIP. Si eliminas ese header obtendrás la respuesta correcta.
b) Los métodos http en JSON devuelven la respuesta original recibida en la propiedad RAW. Si esa respuesta viene codificada como JSON, entonces los métodos aplican un parse automático a RAW y devuelven el objeto obtenido en la propiedad JSON. En tu caso, si consultas el valor de la propiedad ContentType
en la respuesta veras que llega como text/plain
, y esa es la razón por la que el método httpGet
no esta llenando la propiedad JSON.
Saludos
Victor Espina
Estimado Victor
trato de hacer una consulta get de la siguiente manera, en postman me funciona correctamente pero cuando lo intento con tu json.prg pasa lo siguiente
DO JSON
JSON.useFastParser = .T.
lcorreoApi = "ryc.consultor@gmail.com" lclaveApi = "nlb0xrdzhfkacnm0c61xno47sd53scgxoptpikbsyg" stclaveApi = STRCONV(lclaveApi,13)
DEFINE CRLF CHR(13)+CHR(10)
LOCAL oResp,cData,cHeaders
TEXT TO cHeaders NOSHOW TEXTMERGE Accept-Encoding: gzip Connection: keep-alive Content-Type: text/plain; charset=utf-8 x-api-key: nlb0xrdzhfkacnm0c61xno47sd53scgxoptpikbsyg ENDTEXT
oResp = JSON.httpGet("https://api.algodocs.com/v1/extractors/?email_address=cnljLmNvbnN1bHRvckBnbWFpbC5jb20=&api_key=bmxiMHhyZHpoZmthY25tMGM2MXhubzQ3c2Q1M3NjZ3hvcHRwaWtic3ln", cHeaders)
cprueba = JSON.Stringify(oResp) ?cprueba
cjson = json.parse(cprueba) IF JSON.lastError.hasError ?JSON.lastError.films RETURN ENDIF
la respuesta me la trae pero no la puedo leer los elementos porque me la muestra así
en postman me la trae sin problemas
agradezco mucho si me puedes ayudar
saludos,