如何在golang中为URL添加字符串?

时间:2015-09-27 01:18:50

标签: rest go

我是golang的新手并且第一次尝试这个。我必须打电话给雅虎财务api(YQL)以获得json格式的符号的股票价格。 这是api:

http://query.yahooapis.com/v1/public/yql?q=select%20LastTradePriceOnly%20from%20yahoo.finance.quote%20where%20symbol%20in%20(%22AAPL%22,%22FB%22,%22GOOG%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys

现在我在上面的选择查询中对符号(AAPL,FB,GOOG)进行了硬编码,但这些符号将来自用户,它应该是动态的。我应该如何在golang中将输入(符号)添加到上面的查询?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您将符号(由用户提供)作为字符串数组参数(例如:" symbols",为string["\"AAPL\"", "\"FB\"", "\"GOOG\""]),则可以使用{{3生成正确的字符串:

s := strings.Joins(symbols, ",")

然后(详见" strings/#Join"),使用Encode / decode URLs获取符号的最终网址字符串:

url := "http://query.yahooapis.com/v1/public/yql?q=select%20LastTradePriceOnly%20from%20yahoo.finance.quote%20where%20symbol%20in%20(" + 
url.QueryEscape(s) + 
")&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"