/// <summary> /// 视屏合法性检查 /// </summary> /// <param name="video"></param> /// <returns></returns> public bool VideoCheck(string video) { string url = "http://ai.qiniuapi.com/v3/video/censor"; const string path = "/v3/video/censor"; string bodyStr = "{ \"data\": { \"uri\": \"" + video + "\" } ,\"params\": {\"scenes\": [\"pulp\", \"terror\", \"politician\"]} }"; string data = QiniuTokenUtility.GetData(post, path, rawQuery, host, contentType, bodyStr); string token = QiniuTokenUtility.GetQiniuToken(data); HttpContent httpContent = new StringContent(bodyStr, Encoding.UTF8); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("Authorization", token); HttpResponseMessage response = client.PostAsync(url, httpContent).Result; var rs = response.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <JObject>(rs); if (result.ContainsKey("job")) { using (HttpClient httpClient = new HttpClient()) { var job_id = result["job"].ToString(); // 循环获取状态 bool finish = false; VideoCheckJobResponse videoCheckRespon = new VideoCheckJobResponse(); do { if (IsCheckFinish(job_id, ref videoCheckRespon)) { finish = true; } } while (!finish); if (videoCheckRespon.Result.Result.Suggestion != pass) { return(false); } } } } return(true); }
/// <summary> /// 检查结束 /// </summary> /// <param name="jobId"></param> /// <param name="videoCheckRespon"></param> /// <returns></returns> private bool IsCheckFinish(string jobId, ref VideoCheckJobResponse videoCheckRespon) { var data = QiniuTokenUtility.GetData(get, "/v3/jobs/video/" + jobId, rawQuery, host, null, null); var token = QiniuTokenUtility.GetQiniuToken(data); string jobUrl = "http://ai.qiniuapi.com/v3/jobs/video/" + jobId; using (HttpClient httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Add("Authorization", token); var response = httpClient.GetAsync(jobUrl).Result; var rs = response.Content.ReadAsStringAsync().Result; videoCheckRespon = JsonConvert.DeserializeObject <VideoCheckJobResponse>(rs); if (videoCheckRespon.Status != finish) { return(false); } } return(true); }