| 4D v13.4HTTP Request | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v13.4
 HTTP Request 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| HTTP Request ( metodoHTTP ; url ; conteúdo ; resultado {; nomCab ; valCab}{; *} ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| metodoHTTP | Texto |   | Método HTTP para a solicitação | |||||
| url | Texto |   | URL à qual enviar a solicitação | |||||
| conteúdo | Texto, BLOB, Imagem |   | Conteúdo do corpo(body)da solicitação | |||||
| resultado | Texto, BLOB, Imagem |   | Resultado da solicitação | |||||
| nomCab | Array texto |   | Nomes dos cabeçalhos da solicitação | |||||
|   | Nomes dos cabeçalhos devolvidos | |||||||
| valCab | Array texto |   | Valores dos cabeçalhos da solicitação | |||||
|   | Valores dos cabeçalhos devolvidos | |||||||
| * | Operador |   | Se passada, a conexão se mantém (keep-alive) Se omitida, a conexão é fechada automaticamente. | |||||
| Resultado | Inteiro longo |   | Código de estado HTTP | |||||
O comando HTTP Request permite enviar todo tipo de petição HTTP a um URL específico e processar a resposta do servidor HTTP.
Passe no parâmetro metodoHTTP o método HTTP da petição. Pode utilizar uma das seguintes constantes, do tema HTTP Client:
| Constante | Tipo | Valor | Comentário | 
| HTTP DELETE Method | Cadeia | DELETE | Ver o RFC 2616 | 
| HTTP GET Method | Cadeia | GET | Ver o RFC 2616. Equivale a utilizar o comando HTTP Get | 
| HTTP HEAD Method | Cadeia | HEAD | Ver o RFC 2616 | 
| HTTP OPTIONS Method | Cadeia | OPTIONS | Ver o RFC 2616 | 
| HTTP POST Method | Cadeia | POST | Ver o RFC 2616 | 
| HTTP PUT Method | Cadeia | PUT | Ver o RFC 2616 | 
| HTTP TRACE Method | Cadeia | TRACE | Ver o RFC 2616 | 
Passe no parâmetro url  ou URL onde queira enviar a solicitação. A sintaxes a utilizar é:
http://[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}]Por exemplo, você pode passar as seguintes cadeias:
    http://www.myserver.com
    http://www.myserver.com/path
    http://www.myserver.com/path?name="jones"
    https://www.myserver.com/login (*)
    http://123.45.67.89:8083
    http://john:smith@123.45.67.89:8083(*) Durante as solicitações HTTPS, a autoridade do certificado não se verifica.
Passe no parâmetro conteúdo o corpo (body) da petição. Os dados passados neste parâmetro dependem do método HTTP da solicitação.
Pode enviar dados de tipo texto, BLOB ou Imagem. Quando o content-type não é especificado, é utilizado os seguintes tipos:
Depois da execução do comando, o parâmetro resposta recupera o resultado do pedido devolvido pelo servidor. Este resultado corresponde ao corpo (body) da resposta, sem os cabeçalhos (headers). Pode passar variáveis de diferentes tipos em resposta:
Se o resultado devolvido pelo servidor não corresponde ao tipo da variável resposta, é deixado vazio e a variável sistema OK toma o valor 0.
Em nomCab e valoresCab passe os arrays que contém os nomes e os valores dos cabeçalhos da solicitação.
Depois da execução do método, estes arrays contém os nomes e os valores dos cabeçalhos devolvidos pelo servidor HTTP. Especificamente, este principio lhe permite administrar seus cookies. 
O parâmetro * permite ativar o mecanismo keep-alive para a conexão ao servidor. Por defeito, este parâmetro se omite, keep-alive não está ativo.
O comando devolve o código do estado HTTP padrão (200=OK...) tal qual foi devolvido pelo servidor. A lista de códigos de estado HTTP está no RFC 2616.
Caso a conexão ao servido não seja possível por uma razão relacionada com  a rede (DNS Failed, Server not reachable...), o comando devolve 0 e é gerado um erro.Você pode interceptá-lo usando um método instalado pelo comando ON ERR CALL.
Eliminação de um registro em uma base remota:
 C_TEXT($response)
 $body_t:="{record_id:25}"
 $httpStatus_l:=HTTP Request(HTTP DELETE Method;"database.example.com";$body_t;$response)Nota: Você deve processar a solicitação da maneira apropriada no servidor remoto, HTTP Request somente se encarrega da petição e do resultado devolvido.
Adicionar um registro a uma base remota:
 C_TEXT($response)
 $body_t:="{fName:'john',fName:'Doe'}"
 $httpStatus_l:=HTTP Request(HTTP PUT Method;"database.example.com";$body_t;$response)Nota: Você deve processar a solicitação da maneira apropriada no servidor remoto, HTTP Request somente se encarrega da petição e do resultado devolvido.
	Produto: 4D
	Tema: Cliente HTTP
	Número 
        1158
        
        
        
	

	Criado por: 4D v13