Jump to content

Como realizar um POST com Basic Auth em Golang(GO)


Postagens Recomendadas

  • Administradores

Tópico originalmente criado por: @Jonathan Santos

17c1044808c05a0916990c09f6e6f1c696575db5.png.fcffbbff8380afbaf3bf0588c9e9d547.png

Bibliotecas utilizadas:

import “fmt”
import “net/http”
import “net/url”
import “io/ioutil”
import “strings”

Neste exemplo utilizaremos em um dos dados a serem enviados o conteúdo de um arquivo texto armazenado na máquina local, para carregar o arquivo basta utilizar a função ReadFile da estrutura ioutil.

dat, _ := ioutil.ReadFile("C:\\Go\\src\\DemoEdoc\\teste.tx2")

Construindo form com os parametros e valores a serem enviados:

form := url.Values{}

orm.Add(“grupo”, “edoc”)
form.Add(“cnpj”, “08187168000160”)
form.Add(“arquivo”, string(dat))

Montando requisição a partir da estrutura http(net/http), onde o primeiro parâmetro será o método de comunicação utilizado, o segundo a url onde será disparada a requisição e o terceiro os dados a serem enviados, neste caso iremos utilizar o form que montamos acima, mas para que este seja devidamente interpretado precisamos realizar um encode.

req, _ := http.NewRequest("POST", "http://192.168.2.154:8081/ManagerAPIWeb/nfce/envia",

strings.NewReader(form.Encode()))

Definindo Basic Auth:

req.SetBasicAuth("admin", "123mudar")

cli := &http.Client{}

Enviando requisição e tratando retorno:

resp, _ := cli.Do(req)

//Trata o retorno
fmt.Println(“Status:”, resp.Status)
fmt.Println(“Cabeçalho:”, resp.Header)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(“Mensagem:”, string(body))

https://tsdn.tecnospeed.com.br/files/render/a/2EChTyumdxo/m/2Aal0HUq8WfZF7JiUAWJjZFgzpCcBJMPXiExoJvdkCXkaofD_cmNS1s3R9IymjXknRCaqa9NGSw

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...