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

问题描述 投票:0回答:1

我正在尝试将 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 完全陌生,所以我仍在尝试弄清楚如何使用它们。

c# .net wpf xaml
1个回答
0
投票

正如您提到的,您不知道如何获得结果,我将向您展示一个示例。 您必须自己解析响应并更新您的

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

© www.soinside.com 2019 - 2024. All rights reserved.