Skip to content

Commit ce27769

Browse files
committed
adding Bing Spell Check samples
1 parent 738ca24 commit ce27769

File tree

11 files changed

+522
-8
lines changed

11 files changed

+522
-8
lines changed

Tutorials/BingSpellCheckApp.html

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
2+
<!DOCTYPE html>
3+
<html>
4+
<head>
5+
<meta charset="UTF-8">
6+
<title>Bing Spell Check</title>
7+
8+
<style type="text/css">
9+
html, body, div, p, h1, h2 {font-family: Verdana, "Lucida Sans", sans-serif;}
10+
11+
html, body, div, p {font-weight: normal;}
12+
h1, h2 {font-weight: bold;}
13+
sup {font-weight: normal;}
14+
15+
html, body, div, p {font-size: 12px;}
16+
h1 {font-size: 20px;}
17+
h2 {font-size: 16px;}
18+
h1, h2 {clear: left;}
19+
20+
img#logo {float: right;
21+
</style>
22+
23+
<script type="text/javascript">
24+
25+
getSubscriptionKey = function() {
26+
27+
var COOKIE = "bing-spell-check-api-key"; // name used to store API key in key/value storage
28+
29+
function findCookie(name) {
30+
var cookies = document.cookie.split(";");
31+
for (var i = 0; i < cookies.length; i++) {
32+
var keyvalue = cookies[i].split("=");
33+
if (keyvalue[0].trim() === name) {
34+
return keyvalue[1];
35+
}
36+
}
37+
return "";
38+
}
39+
40+
function getSubscriptionKeyCookie() {
41+
var key = findCookie(COOKIE);
42+
while (key.length !== 32) {
43+
key = prompt("Enter Bing Spell Check API subscription key:", "").trim();
44+
var expiry = new Date();
45+
expiry.setFullYear(expiry.getFullYear() + 2);
46+
document.cookie = COOKIE + "=" + key.trim() + "; expires=" + expiry.toUTCString();
47+
}
48+
return key;
49+
}
50+
51+
function getSubscriptionKeyLocalStorage() {
52+
var key = localStorage.getItem(COOKIE) || "";
53+
while (key.length !== 32)
54+
key = prompt("Enter Bing Spell Check API subscription key:", "").trim();
55+
localStorage.setItem(COOKIE, key)
56+
return key;
57+
}
58+
59+
function getSubscriptionKey(invalidate) {
60+
if (invalidate) {
61+
try {
62+
localStorage.removeItem(COOKIE);
63+
} catch (e) {
64+
document.cookie = COOKIE + "=";
65+
}
66+
} else {
67+
try {
68+
return getSubscriptionKeyLocalStorage();
69+
} catch (e) {
70+
return getSubscriptionKeyCookie();
71+
}
72+
}
73+
}
74+
75+
return getSubscriptionKey;
76+
77+
}();
78+
79+
function pre(text) {
80+
return "<pre>" + text.replace(/&/g, "&amp;").replace(/</g, "&lt;") + "</pre>"
81+
}
82+
83+
function renderSearchResults(results) {
84+
document.getElementById("results").innerHTML = pre(JSON.stringify(results, null, 2));
85+
}
86+
87+
function renderErrorMessage(message, code) {
88+
if (code)
89+
document.getElementById("results").innerHTML = "<pre>Status " + code + ": " + message + "</pre>";
90+
else
91+
document.getElementById("results").innerHTML = "<pre>" + message + "</pre>";
92+
}
93+
94+
function bingSpellCheck(query, key) {
95+
var endpoint = "https://api.cognitive.microsoft.com/bing/v7.0/spellcheck/";
96+
97+
var request = new XMLHttpRequest();
98+
99+
try {
100+
request.open("GET", endpoint + "?mode=proof&mkt=en-US&text=" + encodeURIComponent(query));
101+
}
102+
catch (e) {
103+
renderErrorMessage("Bad request");
104+
return false;
105+
}
106+
107+
request.setRequestHeader("Ocp-Apim-Subscription-Key", key);
108+
109+
request.addEventListener("load", function() {
110+
if (this.status === 200) {
111+
renderSearchResults(JSON.parse(this.responseText));
112+
}
113+
else {
114+
if (this.status === 401) getSubscriptionKey(true);
115+
renderErrorMessage(this.statusText, this.status);
116+
}
117+
});
118+
119+
request.addEventListener("error", function() {
120+
renderErrorMessage("Network error");
121+
});
122+
123+
request.addEventListener("abort", function() {
124+
renderErrorMessage("Request aborted");
125+
});
126+
127+
request.send();
128+
return false;
129+
}
130+
// --></script>
131+
132+
</head>
133+
134+
<body onload="document.forms.bing.query.focus(); getSubscriptionKey();">
135+
136+
<img id="logo" align=base src="data:image/png;base64,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">
137+
138+
<form name="bing" onsubmit="return bingSpellCheck(this.query.value, getSubscriptionKey())">
139+
<h2>Spell Check</h2>
140+
<input type="text" name="query" size="80" placeholder="Spell Check" autocomplete=off>
141+
</form>
142+
143+
<h2>Results</h2>
144+
<div id="results">
145+
<p>None yet.</p>
146+
147+
</div>
148+
149+
</body>
150+
</html>

dotnet/Search/BingAutosuggestv7.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Program
1919
static string market = "en-US";
2020

2121
// NOTE: Replace this example key with a valid subscription key.
22-
static string key = "INSERT API KEY";
22+
static string key = "INSERT YOUR API KEY HERE";
2323

2424
static string query = "sail";
2525

dotnet/Search/BingSpellCheckv7.cs

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Net.Http;
5+
using System.Net.Http.Headers;
6+
using System.Text;
7+
using Newtonsoft.Json;
8+
9+
namespace SpellCheckSample
10+
{
11+
class Program
12+
{
13+
static string host = "https://api.cognitive.microsoft.com";
14+
static string path = "/bing/v7.0/spellcheck?";
15+
16+
// For a list of available markets, go to:
17+
// https://docs.microsoft.com/rest/api/cognitiveservices/bing-autosuggest-api-v7-reference#market-codes
18+
static string params_ = "mkt=en-US&mode=proof";
19+
20+
// NOTE: Replace this example key with a valid subscription key.
21+
static string key = "enter your key here";
22+
//text to be spell-checked
23+
static string text = "Hollo, wrld!";
24+
25+
// These properties are used for optional headers (see below).
26+
// static string ClientId = "<Client ID from Previous Response Goes Here>";
27+
//static string ClientId = "2325577A61966D252A475CD760C96C03";
28+
// static string ClientIp = "999.999.999.999";
29+
// static string ClientLocation = "+90.0000000000000;long: 00.0000000000000;re:100.000000000000";
30+
31+
async static void SpellCheck()
32+
{
33+
HttpClient client = new HttpClient();
34+
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", key);
35+
36+
// The following headers are optional, but it is recommended they be treated as required.
37+
// These headers help the service return more accurate results.
38+
//client.DefaultRequestHeaders.Add("X-Search-Location", ClientLocation);
39+
//client.DefaultRequestHeaders.Add("X-MSEdge-ClientID", ClientId);
40+
//client.DefaultRequestHeaders.Add("X-MSEdge-ClientIP", ClientIp);
41+
42+
HttpResponseMessage response = new HttpResponseMessage();
43+
string uri = host + path + params_;
44+
45+
List<KeyValuePair<string, string>> values = new List<KeyValuePair<string, string>>();
46+
values.Add(new KeyValuePair<string, string>("text", text));
47+
48+
using (FormUrlEncodedContent content = new FormUrlEncodedContent(values))
49+
{
50+
content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
51+
response = await client.PostAsync(uri, content);
52+
}
53+
//Get the client ID header from your request
54+
string client_id;
55+
if (response.Headers.TryGetValues("X-MSEdge-ClientID", out IEnumerable<string> header_values))
56+
{
57+
client_id = header_values.First();
58+
Console.WriteLine("Client ID: " + client_id);
59+
}
60+
//print the response
61+
62+
string contentString = await response.Content.ReadAsStringAsync();
63+
64+
//deserialize the JSON response from the API
65+
dynamic jsonObj = JsonConvert.DeserializeObject(contentString);
66+
Console.WriteLine(jsonObj);
67+
68+
}
69+
70+
static void Main(string[] args)
71+
{
72+
SpellCheck();
73+
Console.ReadLine();
74+
}
75+
76+
}
77+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import java.io.*;
2+
import java.net.*;
3+
import java.util.*;
4+
import javax.net.ssl.HttpsURLConnection;
5+
6+
/*
7+
* Gson: https://github.com/google/gson
8+
* Maven info:
9+
* groupId: com.google.code.gson
10+
* artifactId: gson
11+
* version: 2.8.1
12+
*
13+
* Once you have compiled or downloaded gson-2.8.1.jar, assuming you have placed it in the
14+
* same folder as this file (EntitySearch.java), you can compile and run this program at
15+
* the command line as follows.
16+
*
17+
* javac EntitySearch.java -cp .;gson-2.8.1.jar
18+
* java -cp .;gson-2.8.1.jar EntitySearch
19+
*/
20+
import com.google.gson.Gson;
21+
import com.google.gson.GsonBuilder;
22+
import com.google.gson.JsonObject;
23+
import com.google.gson.JsonParser;
24+
25+
public class EntitySearch {
26+
27+
// **********************************************
28+
// *** Update or verify the following values. ***
29+
// **********************************************
30+
31+
// Replace the subscriptionKey string value with your valid subscription key.
32+
static String subscriptionKey = "ENTER KEY HERE";
33+
34+
static String host = "https://api.cognitive.microsoft.com";
35+
static String path = "/bing/v7.0/entities";
36+
37+
static String mkt = "en-US";
38+
static String query = "italian restaurant near me";
39+
40+
public static String search () throws Exception {
41+
String encoded_query = URLEncoder.encode (query, "UTF-8");
42+
String params = "?mkt=" + mkt + "&q=" + encoded_query;
43+
URL url = new URL (host + path + params);
44+
45+
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
46+
connection.setRequestMethod("GET");
47+
connection.setRequestProperty("Ocp-Apim-Subscription-Key", subscriptionKey);
48+
connection.setDoOutput(true);
49+
50+
StringBuilder response = new StringBuilder ();
51+
BufferedReader in = new BufferedReader(
52+
new InputStreamReader(connection.getInputStream()));
53+
String line;
54+
while ((line = in.readLine()) != null) {
55+
response.append(line);
56+
}
57+
in.close();
58+
59+
return response.toString();
60+
}
61+
62+
public static String prettify (String json_text) {
63+
JsonParser parser = new JsonParser();
64+
JsonObject json = parser.parse(json_text).getAsJsonObject();
65+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
66+
return gson.toJson(json);
67+
}
68+
69+
public static void main(String[] args) {
70+
try {
71+
String response = search ();
72+
System.out.println (prettify (response));
73+
}
74+
catch (Exception e) {
75+
System.out.println (e);
76+
}
77+
}
78+
}

java/Search/BingSpellCheckv7.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import java.io.*;
2+
import java.net.*;
3+
import javax.net.ssl.HttpsURLConnection;
4+
5+
public class HelloWorld {
6+
7+
static String host = "https://api.cognitive.microsoft.com";
8+
static String path = "/bing/v7.0/spellcheck";
9+
10+
// NOTE: Replace this example key with a valid subscription key.
11+
static String key = "ENTER KEY HERE";
12+
13+
static String mkt = "en-US";
14+
static String mode = "proof";
15+
static String text = "Hollo, wrld!";
16+
17+
public static void check () throws Exception {
18+
String params = "?mkt=" + mkt + "&mode=" + mode;
19+
URL url = new URL(host + path + params);
20+
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
21+
connection.setRequestMethod("POST");
22+
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
23+
connection.setRequestProperty("Content-Length", "" + text.length() + 5);
24+
connection.setRequestProperty("Ocp-Apim-Subscription-Key", key);
25+
connection.setDoOutput(true);
26+
27+
DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
28+
wr.writeBytes("text=" + text);
29+
wr.flush();
30+
wr.close();
31+
32+
BufferedReader in = new BufferedReader(
33+
new InputStreamReader(connection.getInputStream()));
34+
String line;
35+
while ((line = in.readLine()) != null) {
36+
System.out.println(line);
37+
}
38+
in.close();
39+
}
40+
41+
public static void main(String[] args) {
42+
try {
43+
check ();
44+
}
45+
catch (Exception e) {
46+
System.out.println (e);
47+
}
48+
}
49+
}

0 commit comments

Comments
 (0)