2

Style:PhotoとAspect:Tallの画像のみを返そうとしています。

次のように、1つのImageFiltersパラメーターしか検索できないようです。

https://api.datamarket.azure.com/Bing/Search/Image?Query='Houses'&$format=JSON&ImageFilters='Style:Photo'&Market='en-us'

重要な部分:

&ImageFilters='Style:Photo'

次のように、別のものを追加しようとすると、次のようになります。

ImageFilters='Style:Photo'+'Aspect:Tall'

このエラーが発生します:

Parameter: ImageFilters has an invalid pattern of characters

何か案は?

4

3 に答える 3

4

サブスクリプションで正しく機能するBingSearchAPIデータセットで、複数の画像フィルターを使用して次のクエリを直接試しました。

https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Image?Query=%27justin%20biber%27&ImageFilters=%27Style%3aPhoto%2bSize%3aSmall%2bAspect%3aTall%27& $ top = 50&$ format = Atom

以下と同等:

https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Image?Query='justin biber'&ImageFilters ='Style:Photo + Size:Small + Aspect:Tall'&$ top = 50& $ format = Atom

したがって、ImageFilter全体をImageFilters ='Style:Photo + Size:Small + Aspect:Tall'として一重引用符に入れようとすると、機能するはずです。

于 2012-07-25T20:10:08.010 に答える
3

ImageFilters ='Style:Photo + Size:Small + Aspect:Tall'が機能しない場合は、 +符号を%2Bに変更してみてください

ImageFilters='Style:Photo%2BSize:Small%2BAspect:Tall'

それは私のために働きます。

また、 BingSearchContainer.csを使用する場合、+記号または%2Bを使用できない別の問題があります。解決策は置き換えることです

query = query.AddQueryOption("ImageFilters", string.Concat("\'", 
System.Uri.EscapeDataString(ImageFilters), 
"\'"));

query = query.AddQueryOption("ImageFilters", string.Concat("\'", 
ImageFilters, 
"\'"));
于 2013-10-17T17:31:29.583 に答える
1

これは古いですが、私が解決した同様の問題がありました。1つの問題はそれです

ImageFilters='Style:Photo'+'Aspect:Tall'

である必要がImageFilters='Style:Photo+Aspect:Tall'あるため、個々のパラメーターではなく、値全体を引用します。ここでのもう1つの非自明なことは、交換です。これは、 https://github.com/xthepoet/pyBingSearchAPIのPythonリポジトリに正常に実装されました。コードの一部:

request = string.replace(request, "'", '%27')
request = string.replace(request, '"', '%27')
request = string.replace(request, '+', '%2b')
request = string.replace(request, ' ', '%20')
request = string.replace(request, ':', '%3a')

これはアイデアを与えるはずです!

于 2014-11-05T14:59:54.443 に答える