如何在Windows Phone中使用必应搜索API ?
本文关键字:搜索 API Windows Phone | 更新日期: 2023-09-27 18:01:39
我试图使用必应搜索API来查找图像作为背景到我的应用程序内的瓷砖。我已经在我的项目中包含了BingSearchContainer.cs,但我不能使它与这里提供的样例代码工作。
任何关于如何在我的Windows Phone 8应用程序中使用必应搜索API的指导将不胜感激!
谢谢你的回答
我希望你已经有一个AccountKey,所以我不会告诉你必须得到一个。
实施- 首先,将BingSearchContainer.cs添加到项目
- 实现Bing API快速入门中的c#示例代码;代码 之后,右键单击References,选择Manage NuGet Packages…查找并安装
修改示例代码,使其与Windows Phone一起工作:
using Bing; using System; using System.Data.Services.Client; using System.Linq; using System.Net; namespace StackOverflow.Samples.BingSearch { public class Finder { public void FindImageUrlsFor(string searchQuery) { // Create a Bing container. string rootUri = "https://api.datamarket.azure.com/Bing/Search"; var bingContainer = new Bing.BingSearchContainer(new Uri(rootUri)); bingContainer.UseDefaultCredentials = false; // Replace this value with your account key. var accountKey = "YourAccountKey"; // Configure bingContainer to use your credentials. bingContainer.Credentials = new NetworkCredential(accountKey, accountKey); // Build the query. var imageQuery = bingContainer.Image(query, null, null, null, null, null, null); imageQuery.BeginExecute(_onImageQueryComplete, imageQuery); } // Handle the query callback. private void _onImageQueryComplete(IAsyncResult imageResults) { // Get the original query from the imageResults. DataServiceQuery<Bing.ImageResult> query = imageResults.AsyncState as DataServiceQuery<Bing.ImageResult>; var resultList = new List<string>(); foreach (var result in query.EndExecute(imageResults)) resultList.Add(result.MediaUrl); FindImageCompleted(this, resultList); } public event FindImageUrlsForEventHandler FindImageUrlsForCompleted; public delegate void FindImageUrlsForEventHandler(object sender, List<string> result); } }
Microsoft.Data.Services.Client.WindowsP
。现在,让我们使用我提供给你的代码:
using Bing;
using System;
using System.Data.Services.Client;
using System.Linq;
using System.Net;
namespace StackOverflow.Samples.BingSearch
{
public class MyPage
{
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var finder = new Finder();
finder.FindImageUrlsForCompleted += finder_FindImageUrlsForCompleted;
finder.FindImageUrlsFor("candy");
}
void finder_FindImageUrlsForCompleted(object sender, List<string> result)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
foreach (var s in result)
MyTextBox.Text += s + "'n";
});
}
}
}
现在,让我们使用我提供给你的代码:
using Bing;
using System;
using System.Data.Services.Client;
using System.Linq;
using System.Net;
namespace StackOverflow.Samples.BingSearch
{
public class MyPage
{
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var finder = new Finder();
finder.FindImageUrlsForCompleted += finder_FindImageUrlsForCompleted;
finder.FindImageUrlsFor("candy");
}
void finder_FindImageUrlsForCompleted(object sender, List<string> result)
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
foreach (var s in result)
MyTextBox.Text += s + "'n";
});
}
}
}