我正在尝试将 Microsoft 的 Bing Spellcheck API 与 WPF 应用程序一起使用。我有一个文本框,可以在其中输入一些文本,然后有一个按钮可以检查文本框中的拼写,并且应该在任何拼写错误的内容下方返回红线。我认为我的编程正确,但是当我单击按钮时没有任何反应。我正在按照 Microsoft 的代码片段了解如何执行此操作:https://dev.cognitive.microsoft.com/docs/services/56e73033cf5ff80c2008c679/operations/57855119bca1df1c647bc358
我知道 WPF 确实提供拼写检查功能,但是为了我自己的利益,我想练习使用一些 Microsoft 的认知 API。
这是我的 WPF 应用程序
MainWindow.xaml.cs
的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net.Http.Headers;
using System.Net.Http;
using System.Web;
namespace Project1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
static async void MakeRequest()
{
MainWindow window = new MainWindow();
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
//Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "e94333d69eb6493d86aaa4b25e42d0d0");
//Request parameters
queryString["text"] = window.TextBox.Text;
var uri = "https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?" + queryString;
await client.GetAsync(uri);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MakeRequest();
}
}
}
如果有人能够帮助我理解我做错了什么,那就太好了。我对使用 API 完全陌生,所以我仍在尝试弄清楚如何使用它们。
正如您提到的,您不知道如何获得结果,我将向您展示一个示例。 您必须自己解析响应并更新您的
TextBox
。
static async void DownloadPage()
{
var queryString = HttpUtility.ParseQueryString(string.Empty);
queryString["text"] = "Bill Gatas";
queryString["mode"] = "spell";
var uri = "https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?" + queryString;
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "e94333d69eb6493d86aaa4b25e42d0d0");
using (var response = await client.GetAsync(uri))
{
string result = await response .Content.ReadAsStringAsync(); //Put here a breakpoint
}
}
}
如果您在
result
上放置断点,您将看到它包含 JSON
格式的响应(带有建议)。