golang常见的请求接口方法

本文介绍了如何使用Go语言通过`net/http`包实现GET和POST请求,包括使用`http.NewRequest`创建请求实体和`http.Client.Do`发送请求的方法。重点讲解了`strings.NewReader`和`http.PostForm`在不同场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

格式1

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"os"
)

func main() {
	url:=""
	resp, err := http.Get(url)
	if err != nil {
		fmt.Println("接口报错:",err)
		os.Exit(1)
	}
	b, err := ioutil.ReadAll(resp.Body)
	defer resp.Body.Close()

	if err != nil {
		fmt.Println("接口报错:",err)
		os.Exit(1)
	}
	fmt.Println(string(b))
}

或者

import "net/http"
...
clt := http.Client{}
resp, err := clt.Get("http://wwww.baidu.com")

格式2

package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {
	url := ""
	//参数
	payload := strings.NewReader("")
	req, _ := http.NewRequest("POST", url, payload)
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)
	fmt.Println(res)
	fmt.Println(string(body))
}

或者

import (
"net/http"
"net/url"
)
...
data := url.Values{"first":{"one"}, "second":{"two"}}
http.PostForm("xxxx", data)

本质

无论是get方法还是post方法,最终是会调用net/http包的NewRequest函数。多种多样的请求形式,也仅仅是封装的不同而已。

1、使用http.NewRequest函数获得request实体

2、利用http.client结构体的Do方法,将request实体传入Do方法中

其中:

NewReader方法:
func NewReader(s string) *Reader { return &Reader{s, 0, -1} }
初始化一个 Strings.Reader,传入需要操作的字符串

strings.NewReader函数返回*strings.Reader对象

Do方法:
resp, err := http.DefaultClient.Do(req)
发送http请求,req是具体的请求对象。resp是返回的http响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值