public string Normalize(string responseData) { var error = JsonError.FromJson(responseData); var data = JsonResponse.FromJson(responseData); var finalList = new List <List <Dictionary <string, string> > >(); if (data != null && data.Items != null) { foreach (Item item in data.Items) { List <Dictionary <string, string> > resultArray = IterateThroughRows(item); finalList.Add(resultArray); } return(JsonConvert.SerializeObject(finalList.SelectMany(x => x), Formatting.Indented, new JsonConverter[] { new StringEnumConverter() })); } else if (data != null && data.Items == null) { return(JsonConvert.SerializeObject(data, Formatting.Indented, new JsonConverter[] { new StringEnumConverter() })); } else { return(JsonConvert.SerializeObject(error, Formatting.Indented, new JsonConverter[] { new StringEnumConverter() })); } }
public static bool DidSessionExpire(UnityWebRequest request) { if (request.result != UnityWebRequest.Result.Success) { return(false); } JsonResponse response = JsonResponse.FromJson(request.downloadHandler.text); return(response.code == -3); }
/// <summary> /// Creates an error string based on a web request. If there are no errors, returns null. /// </summary> /// <param name="request">The request to get errors from.</param> public static string GetErrorString(UnityWebRequest request) { if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.DataProcessingError) { return("There was a communication error: " + request.error); } else if (request.result == UnityWebRequest.Result.ProtocolError) { return("There was an HTTP error: " + request.error); } else { try { JsonResponse response = JsonResponse.FromJson(request.downloadHandler.text); switch (response.code) { case 0: return("There was an unknown error: " + request.downloadHandler.text); case -1: return("There was an internal server error: " + response.message); case -2: return("Bad data was sent to server: " + response.message); case -3: return("Session has expired: " + response.message); } } catch (System.Exception ex) { Debug.LogError(ex); return("There was an unknown error: " + request.downloadHandler.text); } } return(null); }
public static async Task <string> MakeRequest(Stream stream, SKCanvas canvas) { HttpResponseMessage response; string responseText; byte[] byteData; using (HttpClient client = new HttpClient()) { using (MemoryStream memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream); byteData = memoryStream.ToArray(); } using (ByteArrayContent content = new ByteArrayContent(byteData)) { // Request headers client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", (string)Application.Current.Resources["BingImageSearchKey"]); content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); response = await client.PostAsync(uri, content); responseText = await response.Content.ReadAsStringAsync(); var jsonResponse = JsonResponse.FromJson(responseText); StringBuilder sb = new StringBuilder(); SKRect area = new SKRect(); StringBuilder allTranslatedText = new StringBuilder(); SKPaint textBrush = new SKPaint { TextSize = Globals.TextFontSize, IsAntialias = true, Color = Globals.TextColor, Style = SKPaintStyle.StrokeAndFill, }; textBrush.Typeface = SKFontManager.Default.MatchCharacter('अ'); //Somehow this is not working with Google results if (null == textBrush.Typeface) { SKTypeface.FromFamilyName("Arial"); } SKPaint drawBrush = new SKPaint { IsAntialias = true, Color = SKColors.DarkGray, Style = SKPaintStyle.Stroke, StrokeWidth = 5 }; if (Globals.DoFillBox) { drawBrush.Style = SKPaintStyle.StrokeAndFill; } else { drawBrush.Style = SKPaintStyle.Stroke; } foreach (Region region in jsonResponse.Regions) { string[] box = region.BoundingBox.Split(','); area = SKRect.Create(float.Parse(box[0]), float.Parse(box[1]), float.Parse(box[2]), float.Parse(box[3])); canvas.DrawRect(float.Parse(box[0]), float.Parse(box[1]), float.Parse(box[2]), float.Parse(box[3]), drawBrush); //TODO: revisit and fix this. Orientation is not working switch (jsonResponse.Orientation.ToLower()) { case "down": canvas.RotateDegrees(180 + (float)jsonResponse.TextAngle); break; case "left": canvas.RotateDegrees(90 + (float)jsonResponse.TextAngle); break; case "right": canvas.RotateDegrees(-90 + (float)jsonResponse.TextAngle); break; case "up": canvas.RotateDegrees((float)jsonResponse.TextAngle); break; default: break; } foreach (OCRResponse.Line line in region.Lines) { foreach (Word word in line.Words) { sb.Append(word.Text); sb.Append(" "); } sb.AppendLine(); sb.Append(" "); } sb.AppendLine(); string translatedText = await Translator.Translate(sb.ToString(), Globals.UseGoogleTranslation); TextDrawing.DrawText(canvas, translatedText, area, textBrush); sb.Clear(); allTranslatedText.Append(translatedText); } return(allTranslatedText.ToString()); } } }