Senden von Anforderungen an die Bing-Rechtschreibprüfungs-APISending requests to the Bing Spell Check API

Um eine Textzeichenfolge auf Rechtschreib- und Grammatikfehler zu überprüfen, senden Sie eine GET-Anforderung an den folgenden Endpunkt:To check a text string for spelling and grammar errors, you'd send a GET request to the following endpoint:

https://api.cognitive.microsoft.com/bing/v7.0/spellcheck

Die Anforderung muss das HTTPS-Protokoll verwenden.The request must use the HTTPS protocol.

Alle Anforderungen sollten von einem Server stammen.We recommend that all requests originate from a server. Das Verteilen eines Schlüssels als Teil einer Clientanwendung birgt ein größeres Risiko, dass eine böswillige dritte Partei darauf zugreift.Distributing the key as part of a client application provides more opportunity for a malicious third-party to access it. Ein Server stellt zudem einen einzelnen Upgradepunkt für zukünftige Versionen der API dar.A server also provides a single upgrade point for future versions of the API.

Die Anforderung muss den text-Abfrageparameter angeben, der die zu korrigierende Textzeichenfolge enthält.The request must specify the text query parameter, which contains the text string to proof. Obwohl er optional ist, sollte die Anforderung auch den mkt-Abfrageparameter angeben, wodurch der Markt identifiziert wird, von dem die Ergebnisse stammen sollen.Although optional, the request should also specify the mkt query parameter, which identifies the market where you want the results to come from. Unter Abfrageparameter finden Sie eine Liste optionaler Abfrageparameter wie mode.For a list of optional query parameters such as mode, see Query Parameters. Alle Abfrageparameterwerte müssen URL-codiert sein.All query parameter values must be URL encoded.

Die Anforderung muss den Ocp-Apim-Subscription-Key-Header angeben.The request must specify the Ocp-Apim-Subscription-Key header. Auch wenn dies optional ist, sollten Sie die folgenden Header ebenfalls angeben.Although optional, you are encouraged to also specify the following headers. Mit diesen Headern kann die Bing-Rechtschreibprüfungs-API genauere Ergebnisse zurückgeben:These headers help the Bing Spell Check API return more accurate results:

Eine Liste aller Anforderungs- und Antwortheader finden Sie unter Header.For a list of all request and response headers, see Headers.

Beim Aufrufen der Bing-Rechtschreibprüfungs-API über JavaScript verhindern jedoch die Sicherheitsfunktionen Ihres Browsers möglicherweise den Zugriff auf die Werte dieser Header.When calling the Bing Spell Check API using JavaScript, your browser's built-in security features might prevent you from accessing the values of these headers.

Um dieses Problem zu lösen, können Sie die Anforderung der Bing-Rechtschreibprüfungs-API über einen CORS-Proxy senden.To resolve this issue, you can make the Bing Spell Check API request through a CORS proxy. In der Antwort eines solchen Proxys befindet sich ein Access-Control-Expose-Headers-Header. Dieser enthält eine Whitelist mit Antwortheadern und stellt diese JavaScript zur Verfügung.The response from such a proxy has a Access-Control-Expose-Headers header that whitelists response headers and makes them available to JavaScript.

Die Installation eines CORS-Proxys, mit dem die Tutorial-App auf die optionalen Clientheader zugreifen kann, ist schnell und unkompliziert.It's easy to install a CORS proxy to allow the tutorial app to access the optional client headers. Installieren Sie Node.js, falls Sie dies noch nicht getan haben.First, if you don't already have it, install Node.js. Geben Sie dann an einer Eingabeaufforderung den folgenden Befehl ein.Then enter the following command at a command prompt.

npm install -g cors-proxy-server

Passen Sie den Endpunkt der Bing-Rechtschreibprüfungs-API in der HTML-Datei wie folgt an:Next, change the Bing Spell Check API endpoint in the HTML file to:

http://localhost:9090/https://api.cognitive.microsoft.com/bing/v7.0/spellcheck/

Starten Sie abschließend den CORS-Proxy mit folgendem Befehl:Finally, start the CORS proxy with the following command:

cors-proxy-server

Lassen Sie das Befehlsfenster während der Nutzung der Tutorial-App geöffnet. Wenn Sie das Fenster schließen, wird auch die Ausführung des Proxys beendet.Leave the command window open while you use the tutorial app; closing the window stops the proxy. Im Abschnitt mit den erweiterbaren HTTP-Headern unterhalb der Suchergebnisse wird nun u.a. der X-MSEdge-ClientID-Header angezeigt. Hier können Sie überprüfen, ob dieser für alle Anforderungen identisch ist.In the expandable HTTP Headers section below the search results, you can now see the X-MSEdge-ClientID header (among others) and verify that it's the same for each request.

Beispiel für API-AnforderungExample API request

Im Folgenden ist eine Anforderung dargestellt, die alle vorgeschlagenen Abfrageparameter und -header enthält.The following shows a request that includes all the suggested query parameters and headers. Wenn Sie zuvor noch keine der Bing-APIs aufgerufen haben, lassen Sie den Client-ID-Header weg.If it's your first time calling any of the Bing APIs, don't include the client ID header. Schließen Sie die Client-ID nur ein, wenn Sie bereits eine Bing-API aufgerufen haben und Bing eine Client-ID für die Kombination aus Benutzer und Gerät zurückgegeben hat.Only include the client ID if you've previously called a Bing API and Bing returned a client ID for the user and device combination.

GET https://api.cognitive.microsoft.com/bing/v7.0/spellcheck?text=when+its+your+turn+turn,+john,+come+runing&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE  
X-MSEdge-ClientIP: 999.999.999.999  
X-Search-Location: lat:47.60357;long:-122.3295;re:100  
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>  
Host: api.cognitive.microsoft.com  

Das folgende Beispiel zeigt die Antwort auf die vorherige Anforderung.The following shows the response to the previous request. Im Beispiel sind auch die Bing-spezifischen Antwortheader aufgeführt.The example also shows the Bing-specific response headers.

Hinweis

Da sich URL-Formate und -Parameter ohne Vorankündigung ändern können, verwenden Sie alle URLs in der vorliegenden Form.Because URL formats and parameters are subject to change without notice, use all URLs as-is. Es sollten keine Abhängigkeiten von URL-Format oder -Parametern bestehen, außer wenn dies angegeben ist.You should not take dependencies on the URL format or parameters except where noted.

BingAPIs-TraceId: 76DD2C2549B94F9FB55B4BD6FEB6AC
X-MSEdge-ClientID: 1C3352B306E669780D58D607B96869
BingAPIs-Market: en-US

{  
    "_type" : "SpellCheck",  
    "flaggedTokens" : [{  
        "offset" : 5,  
        "token" : "its",  
        "type" : "UnknownToken",  
        "suggestions" : [{  
            "suggestion" : "it's",  
            "score" : 1  
        }]  
    },  
    {  
        "offset" : 25,  
        "token" : "john",  
        "type" : "UnknownToken",  
        "suggestions" : [{  
            "suggestion" : "John",  
            "score" : 1  
        }]  
    },  
    {  
        "offset" : 19,  
        "token" : "turn",  
        "type" : "RepeatedToken",  
        "suggestions" : [{  
            "suggestion" : "",  
            "score" : 1  
        }]  
    },  
    {  
        "offset" : 35,  
        "token" : "runing",  
        "type" : "UnknownToken",  
        "suggestions" : [{  
            "suggestion" : "running",  
            "score" : 1  
        }]  
    }]  
}  

Nächste SchritteNext steps