HTTP

Prof. Walmes Marques Zeviani

11 Abr 2017

Justificativa e objetivos

HTTP

HTTP Essencial

Comunicação HTTP

Figura  1: Comunicação cliente por HTTP.

Figura 1: Comunicação cliente por HTTP.

  1. O nagegador é o cliente HTTP.
  2. Pergunta ao servidor de DNS (domain name service) quem é o IP que responde pela URL.
  3. Ao saber o IP, o cliente envia requisões por HTTP para o servidor.
  4. O servidor responde as requições HTTP.

Sintaxe da URL

Proxy

Outros protocolos

HTTPS

FTP

HTTP em ação com R

Carregando páginas e arquivos

library(RCurl)
# Funciona também para HTTPS.
getURL("http://leg.ufpr.br/~paulojus/")

# Funciona para imagens.
img <- getBinaryURL("http://leg.ufpr.br/~paulojus/images/tux.gif")
writeBin(img, "Tux.gif")

Preenchendo formulário

Método GET

url <- "http://www.r-datacollection.com/materials/http/GETexample.html"
u <- getURL(url)
cat(u)

Os dados do formulário são tratados pelo PHP.

# URL do PHP.
url <- "http://www.r-datacollection.com/materials/http/GETexample.php"

# URL com valores para os campos do formulário.
req <- sprintf(paste0(url, "?name=%s&age=%d"), "Angenor", 79)
req

# Resultado da requisição.
u <- getURL(req)
cat(u)

# Um jeito mais fácil.
cat(getForm(url, name = "Angenor", age = 79))

Método POST

# URL do PHP.
url <- "http://www.r-datacollection.com/materials/http/POSTexample.php"

cat(postForm(url, name = "Angenor", age = 79, style = "post"))

Formulários com métodos GET e POST

Conexão persistente

# Com uma conexão persistente (mas não deu certo).
han <- getCurlHandle(followlocation = TRUE,
                     cookiefile = "",
                     httpheader = "https://www.cifraclub.com.br/")
system.time(sapply(urls, FUN = getURL, handle =  han))

Resumo

Próxima semana