Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

CONTEÚDO

  1. Visão geral
  2. Configuração
  3. Exemplo de utilização

01. VISÃO GERAL

...

A biblioteca OpenEdge.Net.pl é projetada para ser utilizada como uma API para fazer solicitações HTTP e HTTPS.

...

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvpin%2Fmaking-http(s)-requests-from-abl-applications.html%23

02. Configuração

...

Configuração

Para iniciar sua utilização é necessário incluir a biblioteca de procedimentos OpenEdge.Net.pl no PROPATH da seguinte maneira:

SistemaCaminho da biblioteca
UNIX TTY$DLC/tty/netlib/OpenEdge.Net.pl
Windows GUI%DLC%\gui\netlib\OpenEdge.Net.pl
Windows TTY%DLC%\tty\netlib\OpenEdge.Net.pl
Informações
titleExemplo
C:\dlc116dlc117\gui\netlib\OpenEdge.Net.pl

03. EXEMPLO DE UTILIZAÇÃO

...

Recursos

OpenEdge.Net.HTPP.

...

IHttpRequest https://

...

docs.progress.com/

...

pt-BR/

...

bundle/openedge-programming-interfaces-117/page/OpenEdge.Net.HTTP.IHttpRequest.html

Toda solicitação possui dois elementos obrigatórios: Um verbo HTTP e URI.

...

Bloco de código
titleExemplo PUT
linenumberstrue
USING OpenEdge.Net.HTTP.RequestBuilder.
USING OpenEdge.Net.HTTP.IHttpRequest.
USING Progress.Json.ObjectModel.JsonObject.

DEFINE VARIABLE httpUrl AS CHARACTER NO-UNDO.
DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE oJson AS JsonObject NO-UNDO.

httpUrl = "http://oemobiledemo.progress.com/VehicleOrderService/rest/VehicleOrder/Cart". 
oJson = new JsonObject().
oJson:Add('dsShoppingCart', new JsonObject()). 

oRequest = RequestBuilder:Put(httpUrl, oJson) 
                :AcceptJson() 
                :Request.

OpenEdge.Net.HTPP.

...

HttpClient https://

...

docs.progress.com/

...

pt-BR/

...

bundle/openedge-programming-interfaces-117/page/OpenEdge.Net.HTTP.HttpClient.html

HttpClient faz a solicitação executando o método Execute(), que recebe IHttpRequest e retorna IHttpResponse.

...

Bloco de código
titleExemplo de Request
USING OpenEdge.Net.HTTP.IHttpRequest.
USING OpenEdge.Net.HTTP.IHttpResponse.
USING OpenEdge.Net.HTTP.ClientBuilder.

DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
 
oResponse = ClientBuilder:Build():Client:Execute(oRequest).
MESSAGE
    oResponse:StatusCode SKIP   
    oResponse:StatusReason SKIP
VIEW-AS ALERT-BOX.

OpenEdge.Net.HTTP.IHttpResponse

...

https://

...

docs.progress.com/

...

pt-BR/

...

bundle/openedge-programming-interfaces-117/page/OpenEdge.Net.HTTP.IHttpResponse.html

Quando a request tem um retorno de sucesso, um objeto IHttpResponse é retornado tendo duas propriedades importantes, Entity StatusCode.

...

Bloco de código
titleExemplo Status Code
linenumberstrue
USING OpenEdge.Net.HTTP.IHttpRequest.
USING OpenEdge.Net.HTTP.IHttpResponse.
USING OpenEdge.Net.HTTP.ClientBuilder. 

DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
DEFINE VARIABLE oResponse AS IHttpResponse NO-UNDO.
 
oResponse = ClientBuilder:Build():Client:Execute(oRequest).
MESSAGE
    oResponse:StatusCode SKIP
    oResponse:StatusReason SKIP
VIEW-AS ALERT-BOX.

OpenEdge.Net.

...

URI https://

...

docs.progress.com/

...

pt-BR/

...

bundle/openedge-programming-interfaces-117/page/OpenEdge.Net.URI.html

A classe URI encapsula o endereço de destino, incluindo o esquema, host, porta, caminho, consulta e outros elementos URI relacionados.

Bloco de código
titleExemplo de como construir um objeto URI
linenumberstrue
USING OpenEdge.Net.URI.
USING OpenEdge.Net.UriSchemeEnum. 

DEFINE VARIABLE oURI AS URI NO-UNDO. 

oURI = new URI(string(UriSchemeEnum:http), 'oemobiledemo.progress.com').
oURI:Path = '/VehicleOrderService/rest/VehicleOrder/Cart'. 
oURI:AddQuery('filter', '').

Uso de

...

Cookies https://

...

docs.progress.com/

...

pt-BR/

...

bundle/openedge-programming-interfaces-117/page/Implementing-stateful-clients-with-cookies.

...

html

Os cookies são armazenados na instância de classe OpenEdge.Net.HTTP.ICookieJar.

...

Bloco de código
titleExemplo de implementação de cookies
USING OpenEdge.Net.HTTP.IHttpClient.
USING OpenEdge.Net.HTTP.ClientBuilder.
USING OpenEdge.Net.HTTP.ICookieJar. 
USING OpenEdge.Net.HTTP.CookieJarBuilder.
USING OpenEdge.Net.HTTP.Cookie. 

DEFINE VARIABLE moHttpClient AS IHttpClient NO-UNDO. 

moHttpClient = ClientBuilder:Build()
                    :KeepCookies(CookieJarBuilder:Build():CookieJar)
                    :Client.

Considerações de

...

Segurança https://

...

docs.progress.com/

...

pt-BR/

...

bundle/openedge-programming-interfaces-117/page/Security-considerations.

...

html

O client HTPP pode realizar requisições HTTPS desde que os certificados do lado do client estejam instalados no armazenamento de certificados OpenEdge.

...