首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HTTP处理程序中从URL中获取参数

如何在HTTP处理程序中从URL中获取参数
EN

Stack Overflow用户
提问于 2019-07-20 14:26:34
回答 1查看 3.6K关注 0票数 1

我正在开发一个带有端点/密码/速率的web服务应用程序,它接受两个货币的“符号”作为输入。web服务应该在数据库中的这些字符之间搜索货币交换数据,如果数据库中没有值,或者时间戳值与当前值相差1分钟以上,请向服务API:https://min-api.cryptocompare.com/documentation请求,所以我创建了struct和go-chi路由器。但我不知道如何构建一个工作处理程序来从URL获取参数,例如:https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD

代码语言:javascript
复制
package main

import (
    "github.com/go-chi/chi"
    "net/http"
)

type Crypto struct {
    Cur1 string
    Cur2 string
    Rate float64
    Timestamp int64
}
func main() {
    port := ":3000"
    r := chi.NewRouter()
    r.Get("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Connected"))
    })

    http.ListenAndServe(port, r)

我想我可以尝试为处理程序主体上的第一个值创建Cur1:

代码语言:javascript
复制
cur1 = r.FormValue("cur1")

第二个数值也是如此:

代码语言:javascript
复制
Cur2 = r.FormValue("cur2") 

最后的请求是:~/get_rates?cur1=eth&cur2=btc

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-20 15:21:24

可以通过调用getter r.URL.Query().Get("paramName")从请求中提取查询参数。

提取任务的cur1和cur2如下所示:

代码语言:javascript
复制
r.Get("/get_rates", func(w http.ResponseWriter, r *http.Request) {
        cur1 := r.URL.Query().Get("cur1")
        cur2 := r.URL.Query().Get("cur2")
        w.Write([]byte("cur1=" + cur1 + "; cur2=" + cur2))
})
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57125612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档