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

时间:2016-03-10 14:57:32

标签: go

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

http://localhost:8002/tiles?url=url&r=0&g=250&b=0&a=230&replaceR=0&replaceG=127&replaceB=0&replaceA=0

是我的典型要求。我想添加更多颜色来交换,所以如果我可以传递类似的东西会很棒:

http://localhost:8002/tiles?url=url&rgba1=[0,250,0,230,0,127,0,0]&rgba2=[250,0,100,100,200,0,20,180]

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

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
}

但它只是打印[0]

1 个答案:

答案 0 :(得分:1)

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

rgba1=0&rgba1=250&rgba1=0&rgba1=230&rgba1=0&rgba1=127&rgba1=0&rgba1=0

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

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