Autenticação Json Bearer

Discussão em 'EMS , HCM e Totvs 11' iniciado por JJSFFRANCO, Janeiro 3, 2023.

  1. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Adiciona esse código após o oResponse = ClientBuilder:Build():Client:EXECUTE(oRequest).

    E mostra o retorno que ocorre

    Código:
    IF oResponse:StatusCode <> 200
        THEN DO:
            /*MESSAGE
                'ERROR: Cannot retrieve forecast from service'
                SKIP 'HTTP Status Code:' oResponse:StatusCode
                SKIP oResponse:StatusReason
                VIEW-AS ALERT-BOX.*/
            MESSAGE STRING(oResponse) SKIP oResponse:StatusReason
                VIEW-AS ALERT-BOX INFO BUTTONS OK.
            RETURN ERROR.
        END.
    /* Get payload and verify that it is JSON */
    oEntity = oResponse:Entity.
    IF TYPE-OF(oEntity, JsonObject)
        THEN oCampos = CAST(oEntity, JsonObject).
        ELSE DO:
            MESSAGE
                'ERROR: Cannot understand response from service'
                VIEW-AS ALERT-BOX.
            RETURN ERROR.
        END.
    
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Altere o oCampos pelo seu oJsonResp
  3. rlfritz

    rlfritz Membro Ativo

    Oi!
    O Progress não está conseguindo converter o retorno do webservice em um objeto json.
    Em algumas integrações, que as vezes me retornam alguma coisa 'desconhecida' ... eu costumo colocar um:

    USING Progress.Json.ObjectModel.*.
    USING OpenEdge.Core.String.
    ...
    DEFINE VARIABLE myParser AS ObjectModelParser NO-UNDO.
    DEFINE VARIABLE lcHTML AS LONGCHAR NO-UNDO.
    ...
    IF TYPE-OF(oResponse:Entity, JsonObject) THEN DO:
    /* aqui, o progress reconheceu a resposta como um objeto json. */
    ... CAST ....
    end.
    else do:
    /* Progress não reconheceu o objeto json */
    lcHTML = cast(oResponse:Entity, String):VALUE. // converte em uma string
    myParser = NEW ObjectModelParser().
    oJsonRespObj = CAST(myParser:parse(lcHTML), JsonObject). // magia ....

    end.
    rafael.andrade curtiu isso.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Excelente resposta Robert, obrigado pela contribuição
    rlfritz curtiu isso.
  5. rlfritz

    rlfritz Membro Ativo

    Valeu Rafael!
    Eu sempre esqueço de colocar os comandos como código fonte e o programa do fórum acaba colocando emojis no meio do código.

    oJsonRespObj = CAST(myParser:parse(lcHTML), JsonObject). // magia ....

    Código:
    oJsonRespObj = CAST(myParser:parse(lcHTML), JsonObject). // magia ....
    
  6. contatotalitacamargo

    contatotalitacamargo Sem Pontuação

    Obrigada pela solução apontada.
    Me ajudou aqui também :)
    rafael.andrade curtiu isso.

Compartilhe esta Página