avatar

Golang Http Client 使用 Request 带参数进行Post请求

一直使用request.Form.Add 添加参数发送请求, 发现死活得不到参数 十分奇怪中, 最后看文档才发现有这样一句话
The HTTP client ignores Form and uses Body instead.

这是神马思考方式啊, 为嘛用Body覆盖啊 混蛋!!!!

最后采用这样的方法, 一下代码是mailgun发送邮件的演示, 就是搞这东西搞了老半天
话说 Rackspace 会员有特殊福利 不是每天200封 而是每月50K 一本满足!!!

  c := appengine.NewContext(r)
  client := urlfetch.Client(c)
  //获取到request对象
  req, _ := http.NewRequest("POST", "https://api.mailgun.net/v2/samples.mailgun.org/messages", nil)
  req.SetBasicAuth("api", "key-3ax6xnjp29jd6fds4gc373sgvjxteol0")
  //生成Form 因为Form是个Values对象来着
  form := url.Values{
    "from":    {"Excited User "},
    "to":      {"mail@example.com"},
    "subject": {"Hello"},
    "text":    {"Testing some Mailgun awesomness!"}}
  //对form进行编码
  req.Body = ioutil.NopCloser(strings.NewReader(form.Encode()))
  resp, _ := client.Do(req)
  fmt.Fprintf(w, "HTTP returned status %v", resp.Status)

Body是一个 ReadCloser 所以用NopCloser来转化Reader对象
就是这样 继续求纠结一些其他功能去~~~

Comments ( 6 ) Trackbacks ( 0 ) Leave a Reply
  1. avatar
    @Key 加了的.. (>_<) 太高端洋气吾辈还是放弃了..
  2. avatar
    @工口绅士 就是填国内手机号 要加上+86.
  3. avatar
    @Key 直接填的国内受姬号..ლ(╹◡╹ლ) 待我再去用google voice试试..
  4. avatar
    @工口绅士 注册后他们会打电话给你的, 电话激活来着, 不然要你打过去才能激活, Google Talk 能免费打!
  5. avatar
    We reviewed your recent request to open a Rackspace Cloud account with us and have determined that at this time your account is not eligible for activation. ( 、・ω・)✄╰⋃╯
  6. avatar
    看到httpclient还以为是java呢 _(:з」∠)_
  1. No trackbacks yet.

    目前尚无任何 trackbacks 和 pingbacks.

    トラックバックはまだありません。

  • ☆*:.。. o(≧▽≦)o .。.:*☆
  • _(:з」∠)_
  • ♪(´ε` )
  • ψ(`∇´)ψ
  • (-_-#)
  • (=´∀`)人(´∀`=)
  • \(//∇//)\
  • ♪(*^^)o∀*∀o(^^*)♪
  • (((o(*゚▽゚*)o)))
  • (´・_・`)
  • σ(^_^;)
  • ( *`ω´)
  • (ノ`Д´)ノ
  • (( _ _ ))..zzzZZ
  • ( ̄▽ ̄)
  • ヽ(`Д´#)ノ
  • ((((;゚Д゚)))))))
  • (>_<)
  • (T_T)
  • ( T_T)\(^-^ )
  • ε=ε=ε=ε=ε=ε=┌(; ̄◇ ̄)┘