• Go语言封装Http协议GET和POST请求


    本文几乎没有文字叙述:

    /*
    有关Http协议GET和POST请求的封装
    */
    package net
    
    import (
        "net/http"
        "io"
        "bytes"
        "encoding/json"
        "io/ioutil"
        "time"
    )
    
    //发送GET请求
    //url:请求地址
    //response:请求返回的内容
    func Get(url string) (response string) {
        client := http.Client{Timeout: 5 * time.Second}
        resp, error := client.Get(url)
        defer resp.Body.Close()
        if error != nil {
            panic(error)
        }
    
        var buffer [512]byte
        result := bytes.NewBuffer(nil)
        for {
            n, err := resp.Body.Read(buffer[0:])
            result.Write(buffer[0:n])
            if err != nil && err == io.EOF {
                break
            } else if err != nil {
                panic(err)
            }
        }
    
        response = result.String()
        return
    }
    
    //发送POST请求
    //url:请求地址,data:POST请求提交的数据,contentType:请求体格式,如:application/json
    //content:请求放回的内容
    func Post(url string, data interface{}, contentType string) (content string) {
        jsonStr, _ := json.Marshal(data)
        req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
        req.Header.Add("content-type", contentType)
        if err != nil {
            panic(err)
        }
        defer req.Body.Close()
    
        client := &http.Client{Timeout: 5 * time.Second}
        resp, error := client.Do(req)
        if error != nil {
            panic(error)
        }
        defer resp.Body.Close()
    
        result, _ := ioutil.ReadAll(resp.Body)
        content = string(result)
        return
    }

    版权声明

    本文为作者原创,版权归作者雪飞鸿所有。 转载必须保留文章的完整性,且在页面明显位置处标明原文链接

    如有问题, 请发送邮件和作者联系。

  • 相关阅读:
    centos7安装KVM
    keepalived高可用
    Jenkins-Pipeline 流水线发布部署项目
    centos7部署jenkins
    版本控制gitlab
    c语言寻找3000以内亲密数对
    c语言寻找1000以内的完全数
    c语言分解因式
    c语言判断给定日期是当年的第几天
    c语言计算程序运行时间
  • 原文地址:https://www.cnblogs.com/Cwj-XFH/p/8733739.html
Copyright © 2020-2023  润新知