将Microsoft的拼写检查必应 API 与 WPF 结合使用,返回零拼写错误



我正在尝试将Microsoft的必应拼写检查API与WPF应用程序一起使用。 我有一个文本框,我可以在其中输入一些文本,然后是一个按钮,用于检查文本框中的拼写,并且应该返回任何拼写错误下方的红线。 我想我已正确编程,但是当我单击按钮时没有任何反应。 我正在按照Microsoft的代码片段来了解如何执行此操作:https://dev.cognitive.microsoft.com/docs/services/56e73033cf5ff80c2008c679/operations/57855119bca1df1c647bc358

我知道 WPF 确实具有可用的拼写检查功能,但为了我自己的利益,我想练习使用Microsoft的一些认知 API。

以下是我MainWindow.xaml.csWPF 应用程序的代码:

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格式的响应(带有建议(。

最新更新