glang 多种http请求

Cazy · · 704 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

func HttpGet(url string) ([]byte, error) {
    resp, err := http.Get(url)
    if err != nil {
        // handle error
        return nil, err
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        // handle error
        return nil, err
    }
    return body, err
}

func HttpPostForm(queryUrl string, queryData map[string]string) ([]byte, error) {
    // )
    if len(queryData) == 0 || queryUrl == "" {
        return nil, errors.New("参数错误")
    }

    url.Parse(queryUrl)
    urlValue := url.Values{}
    for k, v := range queryData {
        var valList = make([]string, 1)
        valList[0] = v
        urlValue[k] = valList
    }
    resp, err := http.PostForm(queryUrl, urlValue)
    if err != nil {
        return nil, err
    }

    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return nil, err
    }
    return body, nil
}
func HttpPostJson(queryUrl string, queryData map[string]string) ([]byte, error) {
    if len(queryData) == 0 || queryUrl == "" {
        return nil, errors.New("参数错误")
    }

    jsonStr, err := json.Marshal(queryData)
    if err != nil {
        return nil, errors.New("json编码出错")
    }
    // jsonStr := []byte()
    req, err := http.NewRequest("POST", queryUrl, bytes.NewBuffer([]byte(jsonStr)))
    if err != nil {
        return nil, err
    }
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}

    resp, err := client.Do(req)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        return nil, err
    }
    return body, nil
}

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:Cazy

查看原文:glang 多种http请求

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

704 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传