https://github.com/peteryangs/request
http客户端,http client
https://github.com/peteryangs/request
go http-client
Last synced: 10 months ago
JSON representation
http客户端,http client
- Host: GitHub
- URL: https://github.com/peteryangs/request
- Owner: PeterYangs
- Created: 2021-09-25T09:05:58.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-10-14T06:44:20.000Z (over 3 years ago)
- Last Synced: 2024-06-20T13:34:04.548Z (about 2 years ago)
- Topics: go, http-client
- Language: Go
- Homepage:
- Size: 36.1 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# request
http请求库
**安装**
```shell
go get github.com/PeterYangs/request/v2
```
**快速开始**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient()
content, err := client.R().GetToContent("https://www.baidu.com")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**get**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient()
r, err := client.R().Get("https://www.baidu.com")
if err != nil {
fmt.Println(err)
return
}
content, err := r.Content()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
或者直接读取结果
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient()
content, err := client.R().GetToContent("https://www.baidu.com")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**post**
Params作为body参数,Query作为url参数
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient()
r, err := client.R().Params(map[string]interface{}{
"list": "123",
"array": []string{"123", "456"},
"form": map[string]interface{}{
"name": "yy",
"email": "904801074@qq.com",
"age": 10,
"order": []string{"1", "2", "3"},
},
}).Post("https://www.baidu.com")
if err != nil {
fmt.Println(err)
return
}
content, err := r.Content()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**post Multipart提交**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
"os"
)
func main() {
f, e := os.OpenFile("README.md", os.O_CREATE|os.O_RDWR, 0644)
if e != nil {
return
}
client := request.NewClient()
ct, err := client.R().Params(map[string]interface{}{"name": "yy", "file": f}).PostMultipartToContent("http://www.yycms.com/post_test")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(ct.ToString())
}
```
**header**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
//全局设置header
client := request.NewClient().Header(map[string]string{"test": "demo"})
//请求设置header
content, err := client.R().Header(map[string]string{"test": "demo2"}).GetToContent("http://list.com/demo/header.php")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**proxy**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient().Proxy("http://127.0.0.1:4780")
content, err := client.R().GetToContent("https://www.google.com.hk/")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**download**
下载
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
url := "http://list.com/demo/demo.zip"
client := request.NewClient()
err := client.R().Download(url, "123.zip")
if err != nil {
fmt.Println(err)
}
}
```
**reTry**
重试
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient()
content, err := client.R().ReTry(1).GetToContent("http://list.com/asdjk.php")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**upload**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
)
func main() {
client := request.NewClient()
content, err := client.R().Upload("http://list.com/demo/get.php", "README.md")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```
**自定义body**
```go
package main
import (
"fmt"
"github.com/PeterYangs/request/v2"
"strings"
)
func main() {
client := request.NewClient()
//设置body后,Params将失效
content, err := client.R().Body(strings.NewReader("name=123&age=18")).PostToContent("http://list.com/demo/post.php")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(content.ToString())
}
```