Versão atual:

Ajuda com FWREST

Boa tarde, tudo certo?? Estou fazendo uma API POST onde envio um pedido de venda atualizado para um terceiro. O JSon monta de forma correta e até a hora do envio eu consigo ver meu json populado, porém, a API do terceiro me retorna erro 500 e ele me fala que o objeto lá chegou vazio. Quando gero via debug a string do json via vscode eu consigo fazer o post normalmente, porém, via protheus não vai. Alguém consegue me ajudar?? Segue abaixo trecho do código responsável pelo envio json

  aHeader := {}

    AAdd(aHeader, "Content-Type: application/json; charset=UTF-8")
    AAdd(aHeader, "Accept: application/json")
    AAdd(aHeader, "User-Agent: Mozilla/4.0 (compatible; Protheus ' + GetBuild() + ')')")
    Aadd(aHeader,'Authorization: Bearer ' + cToken)


    // cPostParms:= oJson:ToJson()
    // sPostRet := HttpPost( cUrlApi + cEndPoint , "", cPostParms, 240, aHeader, @cError )
    // varinfo( "Header", aHeader )
    // if !empty( sPostRet )
    //     conout( "HttpPost OK" )
    //     varinfo( "WebPage", sPostRet )
    // else
    //     conout("HttpPost Failed.")
    // endif


    //  // INFORMA O RECURSO E INSERE O JSON NO CORPO (BODY) DA REQUISIÇÃO
    oRest:nTimeOut := 240000
    //cJson := oJson:ToJson()
    //cTexto := FWNoAccent()
    oRest:SetPath(cEndPoint)
    oRest:SetPostParams(oJson:ToJson())


    // REALIZA O METODO POST E VALIDA O RETORNO
// For nI := 1 To 5
    if oRest:Post(aHeader)
        cError := ""
        nStatus := HTTPGetStatus(@cError)
        oRest:GetResult()
        if  ! nStatus >= 200 .And. nStatus <= 299
        //     MsgInfo("Registro enviado ao MobAgile.")
        // else
            MsgStop("Falha ao Enviar Dados: " + cError)
            lRetorno := .F.
        endif
    else
        lRetorno := .F.
        oParseJSON  := JsonObject():new()
        oParseJSON:fromJson(oRest:CRESULT)
        If(Valtype(oParseJSON:GetJsonText("message")) == "U")
            MsgStop("Falha ao Enviar Dados: " + oRest:getLastError() + CRLF + DecodeUTF8(oRest:getResult(), "cp1252"))
        Else
            MsgStop("Falha ao Enviar Dados: " + oRest:getLastError() + CRLF + DecodeUTF8(oParseJSON:GetJsonText("message"), "cp1252"))
        EndIf            
    endif

Versão (1):

Ver a versão formatada

Ajuda com FWREST

Comentário

new question