コード例 #1
0
ファイル: CheckApi.cs プロジェクト: XiaoDao1402/BookManage2.0
        /// <summary>
        /// 检查图片合法性
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public bool ImageCheck(string image)
        {
            string url = "http://ai.qiniuapi.com/v3/image/censor";


            const string path    = "/v3/image/censor";
            string       bodyStr = "{ \"data\": { \"uri\": \"" + image + "\" } ,\"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 respon     = client.PostAsync(url, httpContent).Result;
                var           rs               = respon.Content.ReadAsStringAsync().Result;
                CheckResponse imageCheckRespon = JsonConvert.DeserializeObject <CheckResponse>(rs);

                if (imageCheckRespon.Result.Suggestion != "pass")
                {
                    return(false);
                }
            }
            return(true);
        }
コード例 #2
0
ファイル: CheckApi.cs プロジェクト: XiaoDao1402/BookManage2.0
        /// <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);
        }
コード例 #3
0
ファイル: CheckApi.cs プロジェクト: XiaoDao1402/BookManage2.0
        /// <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);
        }