public string[] GetOCR(string jsonStrokes, string url, string key, string language) { var configuration = new ConfigurationBuilder().AddJsonFile("config.json").Build(); if (configuration != null) { string endpoint = configuration["endpoint"]; string subscriptionKey = key; //configuration["key"]; string lang = language; //configuration["language"]; jsonStrokes = jsonStrokes.Replace("\"language\": \"en-US\"", "\"language\": \"" + lang + "\""); string requestData = jsonStrokes; string apiAddress = url; using (HttpClient client = new HttpClient { BaseAddress = new Uri(apiAddress) }) { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey); var content = new StringContent(requestData, Encoding.UTF8, "application/json"); var res = client.PutAsync(endpoint, content).Result; if (res.IsSuccessStatusCode) { string result = res.Content.ReadAsStringAsync().Result; InkRecognitionRoot root = JSONProcessor.ParseInkRecognizerResponse(result); if (root != null) { List <InkLine> lstLines = root.GetLines().ToList(); string tekst = string.Empty; foreach (InkLine line in lstLines) { tekst += tekst + line.RecognizedText; } string[] words = lstLines.Select(q => q.RecognizedText).ToArray(); return(words); } else { throw new Exception("Can't parse response"); } } else { throw new Exception($"ErrorCode: {res.StatusCode}"); } } } else { throw new Exception("Can't parse config file"); } }
public async Task <HttpStatusCode> RecognizeAsync() { try { var requestJson = JSONProcessor.CreateInkRecognitionRequest(strokes.AsReadOnly()); var response = await httpManager.PutAsync(requestJson); var statusCode = response.StatusCode; if (statusCode == HttpStatusCode.OK) { var responseJson = await response.Content.ReadAsStringAsync(); root = JSONProcessor.ParseInkRecognizerResponse(responseJson); } return(statusCode); } catch (Exception e) { throw; } }