Skip to content
A golang HTTP client library. Salute to python requests.
Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
examples
LICENSE Add license Sep 8, 2018
README.md icon Nov 16, 2018
requests.go change request struct name Request and change response struct name Re… Dec 27, 2018
requests_test.go add handle io.Copy error Sep 10, 2018

README.md

license

requests

Requests is an HTTP library , it is easy to use. Similar to Python requests.

Installation

go get -u github.com/asmcos/requests

Start

package main

import "github.com/asmcos/requests"

func main (){

        resp,err := requests.Get("http://go.xiulian.net.cn")
        if err != nil{
          return
        }
        println(resp.Text())
}

Post

package main

import "github.com/asmcos/requests"


func main (){

        data := requests.Datas{
          "name":"requests_post_test",
        }
        resp,_ := requests.Post("https://www.httpbin.org/post",data)
        println(resp.Text())
}
 Server return data...
{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "name": "requests_post_test"
  },
  "headers": {
    "Accept-Encoding": "gzip",
    "Connection": "close",
    "Content-Length": "23",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "www.httpbin.org",
    "User-Agent": "Go-Requests 0.5"
  },
  "json": null,
  "origin": "114.242.34.110",
  "url": "https://www.httpbin.org/post"
}

Feature Support

  • Set headers
  • Set params
  • Multipart File Uploads
  • Sessions with Cookie Persistence
  • Proxy
  • Authentication
  • JSON
  • Chunked Requests
  • Debug
  • SetTimeout

Set header

example 1

req := requests.Requests()

resp,err := req.Get("http://go.xiulian.net.cn",requests.Header{"Referer":"http://www.jeapedu.com"})
if (err == nil){
  println(resp.Text())
}

example 2

req := requests.Requests()
req.Header.Set("accept-encoding", "gzip, deflate, br")
resp,_ := req.Get("http://go.xiulian.net.cn",requests.Header{"Referer":"http://www.jeapedu.com"})
println(resp.Text())

example 3

h := requests.Header{
  "Referer":         "http://www.jeapedu.com",
  "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
}
resp,_ := req.Get("http://go.xiulian.net.cn",h)

h2 := requests.Header{
  ...
  ...
}
h3,h4 ....
// two or more headers ...
resp,_ = req.Get("http://go.xiulian.net.cn",h,h2,h3,h4)

Set params

p := requests.Params{
  "title": "The blog",
  "name":  "file",
  "id":    "12345",
}
resp,_ := req.Get("http://www.cpython.org", p)

Auth

Test with the correct user information.

req := requests.Requests()
resp,_ := req.Get("https://api.github.com/user",requests.Auth{"asmcos","password...."})
println(resp.Text())

github return

{"login":"asmcos","id":xxxxx,"node_id":"Mxxxxxxxxx==".....

JSON

req := requests.Requests()
req.Header.Set("Content-Type","application/json")
resp,_ = req.Get("https://httpbin.org/json")

var json map[string]interface{}
resp.Json(&json)

for k,v := range json{
  fmt.Println(k,v)
}

SetTimeout

req := Requests()
req.Debug = 1

// 20 Second
req.SetTimeout(20)
req.Get("http://golang.org")

Get Cookies

resp,_ = req.Get("https://www.httpbin.org")
coo := resp.Cookies()
// coo is [] *http.Cookies
println("********cookies*******")
for _, c:= range coo{
  fmt.Println(c.Name,c.Value)
}
You can’t perform that action at this time.