gpt4 book ai didi

url - 在 Go 中添加查询字符串 url

转载 作者:IT王子 更新时间:2023-10-29 01:54:19 30 4
gpt4 key购买 nike

我需要发送 http 请求到 https://some-domain.com/getsomething/?id=myID我有 url,需要向其添加查询参数。这是我的 Go 代码

baseUrl := "https://some-domain.com"
relativeUrl := "/getsomething/"
url, _ := url.Parse(baseUrl)
url.Path = path.Join(url.Path, relativeUrl)

// add parameter to query string
queryString := url.Query()
queryString.Set("id", "1")
// add query to url
url.RawQuery = queryString.Encode()
// print it
fmt.Println(url.String())

在输出中我看到这个 url:https://some-domain.com/getsomething?id=1

这是必需的:https://some-domain.com/getsomething/?id=1

可以看到?前没有/字符。

您知道如何在不手动操作字符串的情况下修复它吗?

https://play.golang.org/p/HsiTzHcvlQ

最佳答案

您可以使用 ResolveReference .

package main

import (
"fmt"
"log"
"net/url"
)

func main() {
relativeUrl := "/getsomething/"
u, err := url.Parse(relativeUrl)
if err != nil {
log.Fatal(err)
}

queryString := u.Query()
queryString.Set("id", "1")
u.RawQuery = queryString.Encode()

baseUrl := "https://some-domain.com"
base, err := url.Parse(baseUrl)
if err != nil {
log.Fatal(err)
}

fmt.Println(base.ResolveReference(u))
}

https://play.golang.org/p/BIU29R_XBM

关于url - 在 Go 中添加查询字符串 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46195423/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com