golang post数据到服务器?

import requests

url = 'http://www.xxx.com'
headers = {'Referer': 'http://www.xxx.com', 'Connection', 'Keep-Alive'}
data = {'key1': 'value1','key2': 'value2','key3': 'value3'}
r = requests.post(url, headers=headers, data=data)
print(r.text)

以上使用python3向服务器发送post请求,如何用golang实现?
我主要出现的问题是,如果只发送一个数据,可以成功,如 data = {'key1': 'value1'},但是如果发送多个数据就不行了,求赐教!

阅读 2.3k
1 个回答
package main

import (
    "io"
    "log"
    "net/http"
    "net/url"
    "os"
    "strings"
)

func main() {
    params := &url.Values{
        "key1": []string{"value1"},
        "key2": []string{"value2"},
        "key3": []string{"value3"},
    }
    req, err := http.NewRequest("POST", "http://www.xxx.com", strings.NewReader(params.Encode()))
    if err != nil {
        log.Fatal(err)
    }
    req.Header.Set("Referer", "http://www.xxx.com")
    req.Header.Set("Connection", "Keep-Alive")
    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    io.Copy(os.Stdout, resp.Body)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题