private static IEnumerator RecognitionCoroutine(CharacterRecognitionModeBase recognitionMode) { string url = string.Format("{0}?access_token={1}", recognitionMode.API, TOKEN); WWWForm form = new WWWForm(); form.AddField("image", recognitionMode.GetImageSourceByBase64()); form.AddField("recognize_granularity", recognitionMode.Granularity == CharacterRecognitionModeBase.RecognizeGranularity.Big ? "big" : "small"); form.AddField("language_type", recognitionMode.Language.ToString()); form.AddField("detect_direction", recognitionMode.IsDetectDirection ? "true" : "false"); form.AddField("detect_language", recognitionMode.IsDetectLanguage ? "true" : "false"); using (UnityWebRequest request = UnityWebRequest.Post(url, form)) { request.SetRequestHeader("Content-Type", recognitionMode.ContentType); yield return(request.SendWebRequest()); if (!request.isNetworkError && !request.isHttpError) { JsonData jsonData = GlobalTools.StringToJson(request.downloadHandler.text); if (jsonData.Keys.Contains("error_code")) { GlobalTools.LogError("文字识别失败:" + jsonData["error_code"].ToString() + " " + jsonData["error_msg"].ToString()); recognitionMode.FailHandler?.Invoke(); } else { recognitionMode.SuccessHandler?.Invoke(new OCRResponse(jsonData)); } } else { GlobalTools.LogError("文字识别失败:" + request.responseCode + " " + request.error); recognitionMode.FailHandler?.Invoke(); } } }