Golang http Get 和 Post

本文详细探讨了Golang中HTTP客户端如何发起GET和POST请求,包括请求构造、参数传递、响应处理等关键步骤,帮助开发者深入理解Golang在网络编程中的应用。

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

package main
import (
    "fmt"
    "io/ioutil"
    "net/http"
    "net/url"
    "strings"
    . "github.com/soekchl/myUtils"
)
func HttpPost(data_str string) {
    data_str := fmt.Sprintf("name=%s&id=%v", "Luke", 1)
    resp, err := http.Post(source_url, "application/x-www-form-urlencoded",
        strings.NewReader(data_str))
    if err != nil {
        Error(err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        Error(err)
        return
    }
    if strings.Contains(string(body), "Successful") { // 这是按照post方法的 自定义返回值判断
        Notice("数据发送成功!")
    } else {
        Error("数据发送失败!!!", string(body))
    }
}
func httpGet(reqUrl string) ([]byte, error) {
	u, _ := url.Parse(reqUrl)
	q := u.Query()
	u.RawQuery = q.Encode() //urlencode
	response, err := http.Get(u.String())
	if err != nil {
		return nil, err
	}
	if response.Body != nil {
		defer response.Body.Close()
	}
	body, err := ioutil.ReadAll(response.Body)
	if response.StatusCode != 200 {
		if len(body) > 1024 {
			body = body[:1024]
		}
		return nil, errors.New(fmt.Sprintf("获取网站数据错误 返回code=%v body=%s", response.StatusCode, body))
	}
	return body, nil
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值