为了账号安全,请及时绑定邮箱和手机立即绑定

将参数传递给 GET 请求

将参数传递给 GET 请求

Go
BIG阳 2021-11-22 10:31:51
我似乎无法弄清楚如何在go.我正在关注本教程:https://github.com/parnurzeal/gorequest我可以使用 传递参数Header,我认为这是一个坏主意。我基本上是在寻找go版本pythonIn [28]: import requestsIn [29]: r = requests.get("http://localhost:8000/get_result", params={"number": 40})以下是我的 REST API 代码:package mainimport (    "net/http"    "strconv"    "fmt")func make_result(w http.ResponseWriter, r *http.Request) {    fmt.Println(r)    err := r.ParseForm()    if err != nil {        panic(err)    }    number_string := r.Form["number"][0]    // number_string := r.Header["Number"][0] header solution    number, err := strconv.Atoi(number_string)    if err != nil {        panic(err)    }    fmt.Fprint(w, fmt.Sprint(number * 5))}func main() {    http.HandleFunc("/get_result", make_result)    http.ListenAndServe("localhost:8000", nil)}我正在尝试使用以下代码调用它:package mainimport(    "fmt"        "reflect"    "github.com/parnurzeal/gorequest")func main() {    resp, body, errs := gorequest.New().        Get("http://localhost:8000/get_result").        Set("Number", "7").      // Changes the Header         Type("form").            // These two lines appear         Send(`{"number": 5}`).   // to be irrelevant         End()    fmt.Println(errs)    fmt.Println(resp)    fmt.Println(body)}以上类似于python的:In [34]: r = requests.get("http://localhost:8000/get_result", headers={"Number": 7})当我使用 python 方法(使用参数)调用 api 时,我看到/get_result?number=7 <nil> <nil>line 被打印为request object. 但是在我的 go 版本中没有看到它,所以我一定是错误地调用了它。我错过了什么?
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

看起来您需要使用它Param来执行此操作。

此外,标准库NewRequest返回一个 Request 结构,URL其中包含一个函数Query,您可以Add在发出请求之前使用该函数作为查询的参数。


查看完整回答
反对 回复 2021-11-22
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信