Uma solicitação HTTP refere -se a uma ação executada por um cliente HTTP em um recurso HTTP (protocolo) específico. O recurso é identificado principalmente por um URL como um nome de domínio ou um endereço IP.
As solicitações HTTP são um dos blocos de construção mais. Usando a solicitação HTTP, podemos solicitar recursos como páginas da web, vídeos, imagens e outros arquivos de um servidor remoto.
Neste artigo, aprenderemos a construir um cliente HTTP básico usando a linguagem de programação Go.
Requisitos
Neste artigo, você precisará dos seguintes recursos:
Http get
O primeiro método que vamos implementar é o método http get. Um método GET nos permite solicitar dados de um recurso especificado. Por exemplo, quando precisamos buscar artigos do Linuxhint.com servidor, usamos um método get.
O primeiro passo é garantir que você configure seu projeto. Se você não estiver familiarizado com como criar e trabalhar com um projeto Go, consulte nosso tutorial sobre a instalação do Go.
Depois que o projeto for criado, abra seu arquivo GO principal e importe o pacote Net/HTTP da biblioteca padrão Go Standard.
O pacote Net/HTTP nos fornece a funcionalidade e os serviços públicos para fazer uma solicitação HTTP para servidores remotos.
Importe o pacote Net/HTTP adicionando a linha abaixo no seu arquivo GO.
importação (No pacote Net/HTTP, há um método GET que nos permite fazer com que os métodos HTTP GET. A sintaxe da função é como mostrado abaixo:
funct get (url string) (resposta resp *, erro err)A função leva um URL como argumento e retorna a resposta como um ponteiro para a estrutura e um erro (se houver).
Se o método não encontrar um erro, a resposta retornada contém o corpo de resposta do recurso solicitado.
Para usar o método get, podemos criar código como mostrado:
resp, err: = http.Get ("https: // API.SpaceXData.com/v4/lançamentos/mais recente ")No exemplo acima, chamamos o método get e passamos o URL para o recurso que desejamos acessar como uma string.
Em nosso exemplo, usamos a API SpaceX.
Como você notará, a função retorna dois valores que armazenamos em duas variáveis: resp e Err que mantém a resposta retornada e o erro, respectivamente.
Lembre -se de que o RESP contém nada além de um ponteiro para a estrutura segurando os dados reais. Portanto, se tentarmos imprimi -lo, teremos um monte de dados confusos.
Um exemplo de saída da solicitação acima é como mostrado abaixo:
Para ver os dados reais, precisamos acessar a propriedade do corpo na estrutura retornada. Precisamos então lê -lo e imprimi -lo no console ou salvá -lo em um arquivo.
Para isso, podemos usar o ioutil.Readme Método. Este método é definido no pacote ioutil. Ele retorna o corpo de resposta e um erro.
NOTA: Depois de ler o corpo da resposta, precisamos fechá -lo para evitar se for bloquear outras operações em seu programa.
Podemos fazer isso definindo o método de fechamento para executar após a função principal ser finshed. A palavra-chave adiente em Go vem à mão.
O resp.Corpo.Fechar () nos permite fechar o corpo de resposta depois de ler. Depois de lermos o órgão de resposta, podemos imprimi -lo no console, conforme implementado no código abaixo:
Confira nosso tutorial sobre Golang adiar para saber mais
Pacote principalO código acima implementa um cliente HTTP em Go capaz de fazer o HTTP obter solicitação para o método especificado.
Um exemplo de valor de retorno é como mostrado:
Para uma melhor legibilidade, você pode formatar a resposta em formato legível-json ou executar marechal e unarshal para selecionar a saída desejada.
Verifique nosso tutorial sobre JSON Marshal e UNARSHAL para saber mais.
Postagem http
A próxima parte de um cliente HTTP está fazendo o método de postagem. Um método HTTP permite enviar dados para o servidor e executar uma ação no recurso especificado. Isso pode criar, excluir ou atualizar um recurso.
Em Go, podemos fazer solicitação de postagem usando o pacote Net/HTTP. Ele nos fornece o método de postagem, permitindo enviar dados para um servidor.
A sintaxe da função é como mostrado abaixo:
Func Post (URL, String de ContentType, Body IO.Leitor) (resp *resposta, erro err)A função leva três argumentos:
A função deve então retornar a resposta e um erro. Lembre -se de que temos que converter os dados para enviar ao servidor para um formato aceitável. Podemos fazer isso convertendo os dados JSON em io.Leitor, que é basicamente uma interface em go.
Verifique o código -fonte para saber mais.
Convertendo dados JSON em io.O tipo de leitor envolve duas etapas:
O primeiro é codificar os dados JSON no formato de byte. Podemos fazer isso por JSON BESHALING, conforme discutido em nosso tutorial.
Uma vez codificado, podemos converter os dados em tipo, conforme implementado por io.Interface do leitor usando o método NewBuffer. Este método retorna o IO.Tipo de leitor que podemos passar para o método de postagem.
Um bloco de código de amostra é como mostrado abaixo:
corpo, _: = json.Marshal (mapa [string] stringDepois de termos todas as partes em ordem, podemos invocar o método de postagem para o recurso especificado. Lembre -se de que este tutorial usa dados e links fictícios.
Pacote principalO método acima implementa um cliente HTTP simples que pode criar métodos de postagem HTTP para um recurso especificado.
Conclusão
Este artigo mostra como construir um cliente HTTP fundamental usando a linguagem de programação Go. GO é excepcionalmente rápido quando se trata de servir http. Usando o conhecimento deste artigo, você pode expandir o cliente para um aplicativo de pleno direito.
Continue codificando.