Schnellstart: Überprüfen der Rechtschreibung mit der Bing-Rechtschreibprüfungs-REST-API und C#Quickstart: Check spelling with the Bing Spell Check REST API and C#

Verwenden Sie diese Schnellstartanleitung, um die Bing-Rechtschreibprüfungs-REST-API zum ersten Mal aufzurufen.Use this quickstart to make your first call to the Bing Spell Check REST API. Diese einfache C#-Anwendung sendet eine Anforderung an die API und gibt eine Liste mit Korrekturvorschlägen zurück.This simple C# application sends a request to the API and returns a list of suggested corrections. Diese Anwendung ist zwar in C# geschrieben, an sich ist die API aber ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist.While this application is written in C#, the API is a RESTful Web service compatible with most programming languages. Der Quellcode für diese Anwendung ist auf GitHub verfügbar.The source code for this application is available on GitHub.

VoraussetzungenPrerequisites

  • Eine beliebige Edition von Visual Studio 2017 oder höher.Any edition of Visual Studio 2017 or later.
  • So installieren Sie Newtonsoft.Json als NuGet-Paket in Visual StudioTo install Newtonsoft.Json as a NuGet package in Visual studio:
    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappendatei.In Solution Explorer, right-click the Solution file.
    2. Klicken Sie auf NuGet-Pakete für Projektmappe verwalten.Select Manage NuGet Packages for Solution.
    3. Suchen Sie nach Newtonsoft.Json, und installieren Sie das Paket.Search for Newtonsoft.Json and install the package.
  • Unter Linux/macOS kann diese Anwendung mit Mono ausgeführt werden.If you're using Linux/MacOS, this application can be run using Mono.

Sie benötigen ein Cognitive Services-API-Konto mit Zugriff auf die Bing-Rechtschreibprüfungs-API.You must have a Cognitive Services API account with access to the Bing Spell Check API. Falls Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.If you don't have an Azure subscription, you can create an account for free. Vor dem Fortfahren benötigen Sie den Zugriffsschlüssel, der nach dem Aktivieren Ihrer kostenlosen Testversion bereitgestellt wird. Alternativ hierzu können Sie auch den Schlüssel eines kostenpflichtigen Abonnements aus Ihrem Azure-Dashboard verwenden.Before continuing, You will need the access key provided after activating your free trial, or a paid subscription key from your Azure dashboard.

Erstellen und Initialisieren eines ProjektsCreate and initialize a project

  1. Erstellen Sie eine neue Konsolenprojektmappe in Visual Studio mit der Bezeichnung SpellCheckSample.Create a new console solution named SpellCheckSample in Visual Studio. Fügen Sie dann die folgenden Namespaces in die Hauptcodedatei ein.Then add the following namespaces into the main code file.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Text;
    using Newtonsoft.Json;
    
  2. Erstellen Sie Variablen für den API-Endpunkt, Ihren Abonnementschlüssel und den Text, für den die Rechtschreibprüfung durchgeführt werden soll.Create variables for the API endpoint, your subscription key, and the text to be spell checked.

    namespace SpellCheckSample
    {
        class Program
        {
            static string host = "https://api.cognitive.microsoft.com";
            static string path = "/bing/v7.0/spellcheck?";
            static string key = "<ENTER-KEY-HERE>";
            //text to be spell-checked
            static string text = "Hollo, wrld!";
        }
    }
    
  3. Erstellen Sie eine Variable für Ihre Suchparameter.Create a variable for your search parameters. Fügen Sie Ihren Marktcode nach mkt= an.Append your market code after mkt=. Der Marktcode ist das Land, aus dem Sie die Anforderung stellen.The market code is the country you make the request from. Fügen Sie außerdem Ihren Modus für die Rechtschreibprüfung nach &mode= an.Also, append your spell-check mode after &mode=. Der Modus ist entweder proof (fängt die meisten Rechtschreib-/Grammatikfehler ab) oder spell (fängt die meisten Rechtschreib-, aber nicht so viele Grammatikfehler ab).Mode is either proof (catches most spelling/grammar errors) or spell (catches most spelling but not as many grammar errors).

    static string params_ = "mkt=en-US&mode=proof";
    

Erstellen und Senden einer RechtschreibprüfungsanforderungCreate and send a spell check request

  1. Erstellen Sie eine asynchrone Funktion mit dem Namen SpellCheck(), um eine Anforderung an die API zu senden.Create an asynchronous function called SpellCheck() to send a request to the API. Erstellen Sie ein HttpClient-Objekt, und fügen Sie dem Header Ocp-Apim-Subscription-Key Ihren Abonnementschlüssel hinzu.Create a HttpClient, and add your subscription key to the Ocp-Apim-Subscription-Key header. Führen Sie anschließend in der Funktion die folgenden Schritte aus.Then perform the following steps within the function.

    async static void SpellCheck()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key);
    
        HttpResponseMessage response = null;
        // add the rest of the code snippets here (except for main())...
    }
    
  2. Erstellen Sie den URI für die Anforderung, indem Sie Ihren Host, den Pfad und die Parameter anfügen.Create the URI for your request by appending your host, path, and parameters.

    string uri = host + path + params_;
    
  3. Erstellen Sie eine Liste mit einem KeyValuePair-Objekt, das Ihren Text enthält, und verwenden Sie sie zum Erstellen eines FormUrlEncodedContent-Objekts.Create a list with a KeyValuePair object containing your text, and use it to create a FormUrlEncodedContent object. Legen Sie die Headerinformationen fest, und verwenden Sie PostAsync(), um die Anforderung zu senden.Set the header information, and use PostAsync() to send the request.

    var values = new Dictionary<string, string>();
    values.Add("text", text);
    var content = new FormUrlEncodedContent(values);
    content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
    response = await client.PostAsync(uri, new FormUrlEncodedContent(values));
    

Abrufen und Ausgeben der API-AntwortGet and print the API response

Abrufen des Client-ID-HeadersGet the client ID header

Wenn die Antwort einen X-MSEdge-ClientID-Header enthält, können Sie den Wert abrufen und ausgeben.If the response contains an X-MSEdge-ClientID header, get the value and print it.

string client_id;
if (response.Headers.TryGetValues("X-MSEdge-ClientID", out IEnumerable<string> header_values))
{
    client_id = header_values.First();
    Console.WriteLine("Client ID: " + client_id);
}

Abrufen der AntwortGet the response

Rufen Sie die Antwort aus der API ab.Get the response from the API. Deserialisieren Sie das JSON-Objekt, und geben Sie es in der Konsole aus.Deserialize the JSON object, and print it to the console.

string contentString = await response.Content.ReadAsStringAsync();

dynamic jsonObj = JsonConvert.DeserializeObject(contentString);
Console.WriteLine(jsonObj);

Aufrufen der Funktion für die RechtschreibprüfungCall the spell check function

Rufen Sie in der Main-Funktion Ihres Projekts SpellCheck() auf.In the Main function of your project, call SpellCheck().

static void Main(string[] args)
{
    SpellCheck();
    Console.ReadLine();
}

JSON-BeispielantwortExample JSON response

Es wird eine erfolgreiche Antwort im JSON-Format zurückgegeben, wie im folgenden Beispiel gezeigt:A successful response is returned in JSON, as shown in the following example:

{
   "_type": "SpellCheck",
   "flaggedTokens": [
      {
         "offset": 0,
         "token": "Hollo",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "Hello",
               "score": 0.9115257530801
            },
            {
               "suggestion": "Hollow",
               "score": 0.858039839213461
            },
            {
               "suggestion": "Hallo",
               "score": 0.597385084464481
            }
         ]
      },
      {
         "offset": 7,
         "token": "wrld",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "world",
               "score": 0.9115257530801
            }
         ]
      }
   ]
}

Nächste SchritteNext steps