Categorygithub.com/PeterYangs/request/v2
package
2.0.10
Repository: https://github.com/peteryangs/request.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# README

request

http请求库

安装

go get github.com/PeterYangs/request/v2

快速开始

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

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())

}

或者直接读取结果

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参数

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": "[email protected]",
			"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提交

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

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

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

下载

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

重试

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

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

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())

}