1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Webservice Method REST

Discussão em 'EMS , HCM e Totvs 11' iniciado por wsartorelli, Junho 25, 2018.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. wsartorelli

    wsartorelli Membro Participativo

    Ola pessoa.
    Estou tentando montar um programa para utilização de Webservices método REST, mas estou um erro, alguem pode me ajudar?
    Anexo o código do programa, mensagem de erro e a resposta que deveria obter.
    Aguardo e agradeço.
    Obrigado.

    block-level on error undo, throw.

    using OpenEdge.Core.String.
    using OpenEdge.Net.HTTP.ClientBuilder.
    using OpenEdge.Net.HTTP.IHttpClient.
    using OpenEdge.Net.HTTP.IHttpRequest.
    using OpenEdge.Net.HTTP.RequestBuilder.
    using OpenEdge.Net.HTTP.IHttpResponse.

    /* *************************** Definitions ************************** */
    define variable httpClient as IHttpClient no-undo.
    define variable emptyReq as IHttpRequest no-undo.
    define variable resp as IHttpResponse no-undo.

    DEF VAR apiID AS CHAR NO-UNDO.
    DEF VAR apiSecret AS CHAR NO-UNDO.
    DEF VAR httpmethod AS CHAR NO-UNDO.
    DEF VAR apikey AS CHAR NO-UNDO.
    DEF VAR httpurl AS CHAR NO-UNDO.
    DEF VAR dat_ref AS CHAR NO-UNDO.
    DEF VAR stringtosign AS CHAR NO-UNDO.
    DEF VAR secretKey AS MEMPTR NO-UNDO.
    DEF VAR c_signature AS LONGCHAR NO-UNDO.

    DEF VAR x-cod-date AS CHAR NO-UNDO.


    ASSIGN apiid = "xmbfouiauy5d"
    apisecret = "sxOzKUd3XX6Vc/dAiUvO0retebjOhXI/k6Qjb4JTLggnwIxfTekdvm/pRjC+iTpZB5wOcOsZWZWGVdg+k0uTaA==".

    ASSIGN dat_ref = 'x-csod-date:' + STRING(YEAR(TODAY),"9999") + "-" + STRING(MONTH(TODAY),"99") + '-' + STRING(DAY(TODAY),"99") + "T" + STRING(TIME,"HH:MM:SS") + ".000"
    x-cod-date = STRING(YEAR(TODAY),"9999") + "-" + STRING(MONTH(TODAY),"99") + '-' + STRING(DAY(TODAY),"99") + "T" + STRING(TIME,"HH:MM:SS") + ".000".

    ASSIGN httpMethod = 'POST'
    apiKey = 'x-csod-api-key:' + apiId
    httpUrl = '/services/api/sts/session'.
    stringToSign = httpMethod + "\n" + apiKey + "\n" + dat_ref + "\n" + httpUrl.

    ASSIGN secretKey = base64-DECODE(apiSecret).

    ASSIGN c_signature = base64-ENCODE(MESSAGE-DIGEST('SHA-512', stringToSign, secretKey)).

    /* *************************** Main Block *************************** */
    httpClient = ClientBuilder:Build():Client.

    emptyReq = RequestBuilder:post('https://ype-stg.csod.com/services/api/sts/session?userName=soapadmin&alias=w1', String:Empty())
    :AddHeader("Content-Type", "text/xml")
    :AddHeader("x-cod-api", apiid)
    :AddHeader("x-cod-date", x-cod-date)
    :AddHeader("x-cod-signature", string(c_signature))
    :Request.

    resp = httpClient:Execute(emptyReq).

    catch e as Progress.Lang.Error :
    message e:GetMessage(1) skip(2)
    e:CallStack
    view-as alert-box.
    end catch.


    Mensagem de erro:
    upload_2018-6-25_14-34-16.png

    Resposta pretendida (correta):

    <cornerstoneApi
    xmlns:i="www.w3.org/.../XMLSchema-instance">
    <Validations/>
    <status>201</status>
    <timeStamp>2015-09-08T14:45:02+0000</timeStamp>
    <createdRecords>1</createdRecords>
    <data
    xmlns:a="www.CornerStoneOnDemand.com/Core/">
    <a:Session>
    <a:Token>1v28u30hyoxsn</a:Token>
    <a:Secret>N1mxiOOtzc4BBg7XIX2ROc0aN0d0J6vVy6U02CC+DWZl4GuUNEbMtRmVlP7Sb/+9u12RJM+58YphBIsoOldubA==</a:Secret>
    <a:Alias>soapadmin1</a:Alias>
    <a:ExpiresOn>2015-09-08T14:45:02+0000</a:ExpiresOn>
    </a:Session>
    </data>
    </cornerstoneApi>
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Está dando erro na linha 53 do seu programa, ou seja, alguma das variáveis dessa linha está com tipagem errada.

    resp = httpClient:Execute(emptyReq).

    Eu imagino que seja a "emptyReq" ou a "resp".
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página