2015-09-27 27 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