如何在http get中将多个字符串传递给一个url?
Posted
技术标签:
【中文标题】如何在http get中将多个字符串传递给一个url?【英文标题】:How to pass multiple strings into a url in http get? 【发布时间】:2019-01-27 21:14:48 【问题描述】:这是我当前的代码:
var dek string = "dk"
resp,err := c.Get("https://google."VALUEHERE"")
如果我需要一堆不同的字符串,我希望能够将不同的字符串传递到我的网址中。
理想情况下应该是这样的:
resp,err := c.Get("https://google.dk/value1=%v&value2=%v", value1, value2)
这有可能吗?
【问题讨论】:
使用fmt.Sprintf
:golang.org/pkg/fmt
宁可使用 url.URL
和 url.Values
以便正确地对值进行 URL 转义。
你试过什么?显示您当前的代码(您现在显示的示例代码无效,甚至无法编译),并说明您面临的问题。
@Flimzy 是的代码不起作用我只是想说明我需要什么,我想通了,但感谢您的回复!
【参考方案1】:
使用fmt.Sprintf(...)
构建不需要编码的字符串:
hostname := fmt.Sprintf("google.%s", "dk")
// => "google.dk"
使用 net/url
package 构建 URL,以便正确编码:
u := &url.URLScheme: "https", Host: hostname
fmt.Println(u)
// => https://google.dk
q := u.Query()
q.Add("value1", "foo")
q.Add("value2", "Hello, World!")
u.RawQuery = q.Encode()
fmt.Println(u)
// => https://google.dk?value1=foo&value2=Hello%2C+World%21
resp, err := c.Get(u.String())
// ...
【讨论】:
完美,正是我所需要的。非常感谢! @k0ngoz 不客气!如果它解决了您的问题,您可以投票和/或接受此答案。以上是关于如何在http get中将多个字符串传递给一个url?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 GET 方法中为 Spring Boot 控制器类传递多个路径变量?
如何在 React 中将不同的道具从父组件传递给多个子组件?
如何在 mongodb 聚合中将动态字符串传递给 $regex