Popularity
2.8
Declining
Activity
0.0
Stable
52
2
6
Programming language: Go
License: Apache License 2.0
Tags:
Utilities
Latest version: v0.0.1
rq alternatives and similar packages
Based on the "Utilities" category.
Alternatively, view rq alternatives based on common mentions on social networks and blogs.
-
项目文档
🚀Vite+Vue3+Gin拥有AI辅助的基础开发平台,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下载、代码生成器、表单生成器和可配置的导入导出等开发必备功能。 -
excelize
Go language library for reading and writing Microsoft Excel™ (XLAM / XLSM / XLSX / XLTM / XLTX) spreadsheets -
Kopia
Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. -
goreporter
A Golang tool that does static analysis, unit testing, code review and generate code quality report. -
create-go-app
✨ A complete and self-contained solution for developers of any qualification to create a production-ready project with backend (Go), frontend (JavaScript, TypeScript) and deploy automation (Ansible, Docker) by running only one CLI command. -
EaseProbe
A simple, standalone, and lightweight tool that can do health/status checking, written in Go. -
filetype
Fast, dependency-free Go package to infer binary file types based on the magic numbers header signature -
boilr
:zap: boilerplate template manager that generates files or directories from template repositories -
beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. -
go-underscore
Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness.
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
Promo
www.influxdata.com

Do you think we are missing an alternative of rq or a related project?
Popular Comparisons
README
rq

A nicer interface for golang stdlib HTTP client
Documents
Why?
Because golang HTTP client is a pain in the a...
Features
- Compatible with golang
http
stdlib:http.Request
,http.Response
andhttp.Cookie
- Step by step to build your request
- Better HTTP client
- Better cookie jar
- Import/export allow we save/transfer requests in JSON
- Default setting: example default
User-Agent
orAccept-Language
Installation
go get -u github.com/ddo/rq
Getting started
Simple
import "net/http"
import "github.com/ddo/rq"
r := rq.Get("https://httpbin.org/get")
// query https://httpbin.org/get?q=1&q=2&q=3&_=123456
r.Qs("q", "1", "2")
r.Qs("q", "3")
r.Qs("_", "123456")
// send with golang default HTTP client
res, err := http.DefaultClient.Do(r.ParseRequest())
defer res.Body.Close()
Custom client
In case you did not know that golang default http.Client
has no timeout.
use rq/client which has 180s
timeout by default
import "github.com/ddo/rq"
import "github.com/ddo/rq/client"
r := rq.Post("https://httpbin.org/post")
// query
r.Qs("_", "123456")
// Form
r.Send("data", "data value")
r.Send("extra", "extra value")
// use default rq client
// true to tell #Send to read all the response boby when return
data, res, err := client.Send(r, true)
// no need to close res.Body
// read = false -> you need to call res.Body when done reading
Headers
r := rq.Post("https://httpbin.org/post")
r.Set("Content-Type", "application/json")
r.Set("User-Agent", "ddo/rq")
Raw body
r := rq.Post("https://httpbin.org/post")
r.SendRaw(strings.NewReader("raw data binary or json"))
Client 
Default
// by default timeout = 3min
// no cookie jar
// and stops after 10 consecutive requests (10 redirects)
customClient := client.New(nil)
Custom Options
import "github.com/ddo/rq/client/jar"
cookieJar := jar.New()
// custom timeout = 10s and cookie jar
customClient := client.New(&Option{
Timeout: time.Second * 10,
jar: cookieJar,
})
Default settings
// set default User-Agent
defaultRq := rq.Get("")
defaultRq.Set("User-Agent", "github.com/ddo/rq")
customClient := client.New(&Option{
DefaultRq: defaultRq,
})
// from now all the requests called via this customClient
// gonna have the User-Agent header = "github.com/ddo/rq"
// if User-Agent header in request is not set
Redirect
- Default
client
stops after 10 consecutive requests - Or you can use
client.NoRedirect
to disable redirect
client.New(&Option{
CheckRedirect: client.NoCheckRedirect,
})
Cookies 
import "github.com/ddo/rq/client/jar"
cookieJar := jar.New()
customClient := client.New(&client.Option{
Jar: cookieJar,
})
// get all cookies by hostname
cookies, err := cookieJar.Get("httpbin.org")
// get a cookie by hostname and name
cookie, err := cookieJar.GetByName("httpbin.org", "cookiename").
// set cookies
err := cookieJar.Set("httpbin.org", cookies)
// set a cookie
err := cookieJar.SetOne("httpbin.org", cookie)
// clear the cookie jar
err := cookieJar.Clear("httpbin.org")
// delete a cookie by it's name
err := cookieJar.Delete("httpbin.org", "cookiename")
Debug
Set env DLOG=*
to enable logger to see request activities
TODO
List here #1