2015-09-27 108 views
-5

我是golang的新手,第一次尝试这个。我必须打电话给雅虎财务API(YQL)以json格式获取该股票的股票价格。 这里是API:如何将字符串添加到golang中的URL?

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 

对于现在我已经硬编码符号(Apple,FB,Google)在上述选择的查询,但这些符号将会从用户来,它应该是动态的。我应该如何将输入(符号)添加到golang中的上述查询中?

感谢您的帮助提前。

+0

好了,你试图在连接字符串? –

+0

不,我不知道该如何继续。 –

回答

0

如果有符号(由用户提供)作为一个字符串数组参数(如:“symbols”,作为string["\"AAPL\"", "\"FB\"", "\"GOOG\""]),则可以使用strings/#Join以产生正确的字符串:

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

然后(如“Encode/decode URLs”)的详细使用net/url/#QueryEscape以获取符号最终URL字符串:

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" 
+0

或者,您可以将所有查询部分放入['url.Values'](https://golang.org/pkg/net/url/#Values),然后使用['Values.Encode'](https:/ /golang.org/pkg/net/url/#Values.Encode)来获取'?'后面的整个URL部分。 –

+0

@DaveC我同意。有点像http://stackoverflow.com/a/30662697/6309,我想。 – VonC

相关问题