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

About the developer

asmcos
473 Stars 48 Forks Other 35 Commits 5 Opened issues

Description

A golang HTTP client library. Salute to python requests.

Services available

!
?

Need anything else?

Contributors list

No Data

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://www.zhanluejia.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"
}

PostJson

package main

import "github.com/asmcos/requests"

func main (){

    jsonStr := "{\"name\":\"requests_post_test\"}"
    resp,_ := requests.PostJson("https://www.httpbin.org/post",jsonStr)
    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://www.zhanluejia.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://www.zhanluejia.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://wwww.zhanluejia.net.cn",h)

h2 := requests.Header{ ... ... } h3,h4 .... // two or more headers ... resp,_ = req.Get("http://www.zhanluejia.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)
}

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.