Need help with request?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

monaco-io
150 Stars 19 Forks MIT License 99 Commits 0 Opened issues

Description

go request, go http client

Services available

!
?

Need anything else?

Contributors list

Request Mentioned in Awesome Go Go Report Card Go

GoDoc codecov Release TODOs License

HTTP Client for golang, Inspired by Javascript-axios Python-request. If you have experience about axios or requests, you will love it. No 3rd dependency.

Features

  • Make http requests from Golang
  • Transform request and response data

Installing

go mod:

go get github.com/monaco-io/request

Methods

  • OPTIONS
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • TRACE
  • CONNECT

Example

POST

package main

import ( "github.com/monaco-io/request" )

func main() { var body = struct { A string B int }{A: "A", B: 1} var result interface{}

c := request.Client{
    URL:    "https://google.com",
    Method: "POST",
    Query: map[string]string{"hello": "world"},
    JSON:   body,
}
resp := c.Send().Scan(&result)
if !resp.OK(){
    // handle error
    log.Println(resp.Error())
}

// str := resp.String()
// bytes := resp.Bytes()

POST with local files

package main

import ( "github.com/monaco-io/request" )

func main() { c := request.Client{ URL: "https://google.com", Method: "POST", Query: map[string]string{"hello": "world"}, MultipartForm: MultipartForm{ Fields: map[string]string{"a": "1"}, Files: []string{"doc.txt"}, }, } resp := c.Send().Scan(&result) ...

POST step by step

package main

import ( "github.com/monaco-io/request" )

func main() { var response interface{}

resp := request.
    New().
    POST("http://httpbin.org/post").
    AddHeader(map[string]string{"Google": "google"}).
    AddBasicAuth("google", "google").
    AddURLEncodedForm(map[string]string{"data": "google"}).
    Send().
    Scan(&response)
...

POST with context (1/2)

package main

import ( "github.com/monaco-io/request" "context" )

func main() { c := request.Client{ Context: context.Background(), URL: "https://google.com", Method: "POST", BasicAuth: request.BasicAuth{ Username: "google", Password: "google", }, } resp := c.Send() ...

POST with context (2/2)

package main

import ( "github.com/monaco-io/request" "context" )

func main() { var response interface{}

resp := request.
    NewWithContext(context.TODO()).
    POST("http://httpbin.org/post").
    AddHeader(map[string]string{"Google": "google"}).
    AddBasicAuth("google", "google").
    AddURLEncodedForm(map[string]string{"data": "google"}).
    Send().
    Scan(&response)
...

Authorization

package main

import ( "github.com/monaco-io/request" )

func main() { c := request.Client{ URL: "https://google.com", Method: "POST", BasicAuth: request.BasicAuth{ Username: "google", Password: "google", }, } resp := c.Send() }

Timeout

package main

import ( "github.com/monaco-io/request" )

func main() { c := request.Client{ URL: "https://google.com", Method: "POST", Timeout: time.Second*10, } }

Cookies

package main

import ( "github.com/monaco-io/request" )

func main() { c := request.Client{ URL: "https://google.com", CookiesMap: map[string]string{ "cookie_name": "cookie_value", } } }

TLS

package main

import (

"github.com/monaco-io/request"

)

func main() { c := request.Client{ URL: "https://google.com", TLSConfig: &tls.Config{InsecureSkipVerify: true}, } }

License

MIT

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.