企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 发起GET请求 > func NewRequest(method,urlStr,body ioReader) (*Request error) > method,请求方法,如GET > urlStr,请求url > body,参数,get请求传空(nil) > ``` package main import ( "fmt" "io/ioutil" "net/http" //net/http来请求,io/ioutil来解析 ) func main() { // 创建一个客户端对象client client := &http.Client{} // 创建一个请求对象 request request, err := http.NewRequest("GET", "http://www.baidu.com", nil) if err != nil { fmt.Println(err) } // client客户端 调用do方法 发起请求 response接收数据 response, err := client.Do(request) // 输出 响应体里面的状态码 200 fmt.Println(response.Body) // 解析response.Body数据 res, err := ioutil.ReadAll(response.Body) if err != nil { fmt.Println(err) } // 响应内容 body fmt.Println(string(res)) } ``` ### 使用Cookie,模拟用户登录 ``` package main import ( "fmt" "net/http" "strconv" ) func main() { // 创建一个请求客户端 client := &http.Client{} request, err := http.NewRequest("GET", "http://www.baidu.com", nil) if err != nil { fmt.Println(err) } // 使用http.Cookie结构体初始化一个cookie键值对 cookie := &http.Cookie{Name: "userId", Value: strconv.Itoa(123456)} // 使用前面构造的request方法AddCookie往请求中添加Cookie request.AddCookie(cookie) request.AddCookie(&http.Cookie{Name: "session", Value: "ajkhkjgh="}) // client客户端 调用do方法 发起请求 response接收数据 response, err := client.Do(request) // 打印设置的 cookie fmt.Println(response.Request.Cookies()) } ``` ### 设置请求头 Header ``` package main import ( "fmt" "net/http" ) func main() { // 创建客户端对象 client := &http.Client{} request, err := http.NewRequest("GET", "http://www.baidu.com/", nil) if err != nil { fmt.Println(err) } // 设置request的请求头 Header request.Header.Set("Accept", "application/") //client客户端 调用do方法 发起请求 response接收数据 response, err := client.Do(request) // 获取响应头 取出响应头里面的 Content-Type //fmt.Println(response.Header) fmt.Println(response.Header.Get("Content-Type")) // 获取请求头 fmt.Println(response.Request.Header) } ``` ### 使用http包中的get请求方法 > func Get(url string) (resp *Response, err error) ``` package main import ( "fmt" "io/ioutil" "net/http" ) func main() { // http.Get()其实就是DefaultClient.Get(url) // 对于一般的http Request 可以使用,但是不能定制Request response, err := http.Get("http://www.baidu.com") if err != nil { fmt.Println(err) } defer response.Body.Close() // 打印响应头 fmt.Println(response.Header) // 打印body body, err := ioutil.ReadAll(response.Body) fmt.Println(string(body)) } ```