2012-09-27 10 views
2

我正在使用Bing搜索API(Azure)來檢索使用javascript/json的新聞頭條列表。它正在工作,但由於某種原因忽略了$ top(count)值,並且給我默認/最大(15)的結果數量,而不管我放在那裏。

電話是:

https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?$format=JSON&Query=%27MyQuery%27&Sources=%27news%27&Market=%27en-US%27&Adult=%27Off%27&$top=5&$skip=0 

我可以用我的網頁上的代碼限制它,但似乎浪費了我。我有一個懷疑,這是明顯的,我失蹤..

您的幫助表示讚賞。

注:代碼中的$就實際的線,我使用一個代理PHP腳本:

url: "scripts/bingapi.php?query=" + escape("https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?$format=JSON&Query=%27MyQuery%27&Sources=%27news%27&Market=%27en-US%27&Adult=%27Off%27&$top=10&$skip=0"), 

難道是一些涉及到「逃離」?

回答

1

您遇到的問題是由於JavaScript的escape未處理美元符號$字符。我建議使用encodeURIComponent而不是像這樣:

url: "scripts/bingapi.php?query=" + encodeURIComponent("https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?$format=JSON&Query=%27MyQuery%27&Sources=%27news%27&Market=%27en-US%27&Adult=%27Off%27&$top=10&$skip=0"), 

我希望這有助於!

+0

謝謝;我確實嘗試過,但不幸的是它似乎不起作用。奇怪的是,當我檢查原始json時,似乎$ top = 1正在被傳遞。不知道爲什麼。我會更密切地看待它;我可能會做錯事。 – Shadi

1

從兵綜合服務操作文檔:

還要注意的是結果的返回的數字與OData的保留參數$頂部是指除新聞查詢中指定的所有數據源。當您在複合查詢中使用它時,新聞將始終返回固定數量的15條新聞結果。

來自Schema Tabular Documentation for Bing Search API