将数组/切片作为 url 参数传递

Mit*_*ram 3 go

我有一个简单的 Web 服务器,可以拦截地理空间地图图块请求、交换像素,并将图像传递到前端来为它们提供服务。它工作得很好,但是请求变得相当大。我想知道是否可以传递数组或切片?我似乎找不到任何搜索的东西。例如:

http://localhost:8002/tiles?url=url&r=0&g=250&b=0&a=230&replaceR=0&replaceG=127&replaceB=0&replaceA=0
Run Code Online (Sandbox Code Playgroud)

这是我的典型要求。我想添加更多颜色进行交换,因此如果我可以传递类似以下内容,那就太好了:

http://localhost:8002/tiles?url=url&rgba1=[0,250,0,230,0,127,0,0]&rgba2=[250,0,100,100,200,0,20,180]
Run Code Online (Sandbox Code Playgroud)

这可能吗?我尝试像这样循环它:

form := make(map[string][]uint8)
for k, v := range r.URL.Query() {
    arr := []uint8{}
    for i := 0; i < len(v); i++ {
        val, err := strconv.ParseInt(v[i], 10, 32)
        arr = append(arr, uint8(val))
        if err != nil {
        }
    }
    form[k] = arr
}
Run Code Online (Sandbox Code Playgroud)

但它只打印 [0]

lib*_*ked 5

GET 请求中的参数不是数组。

rgba1=0&rgba1=250&rgba1=0&rgba1=230&rgba1=0&rgba1=127&rgba1=0&rgba1=0
Run Code Online (Sandbox Code Playgroud)

创建数组 rgba1=[0,250,0,230,0,127,0,0]

请参阅https://golang.org/pkg/net/url/#Values