예제 #1
0
        private static CommonResponse Recognizer(string msg, string product, string domain)
        {
            IClientProfile   clientProfile = DefaultProfile.GetProfile(HOST, ACCESS_KEY, ACCESS_SECRET);
            DefaultAcsClient client        = new DefaultAcsClient(clientProfile);

            try
            {
                string        body    = msg;
                string        uuid    = Guid.NewGuid().ToString();
                CommonRequest request = new CommonRequest();
                request.Domain     = HOST_DOMAIN;
                request.Method     = MethodType.POST;
                request.UriPattern = product + "/" + domain;//"/nlp/api/sentiment/ecommerce";
                request.AddHeadParameters("x-acs-signature-method", "HMAC-SHA1");
                request.AddHeadParameters("x-acs-signature-nonce", uuid);
                request.AddHeadParameters("x-acs-signature-version", "1.0");
                request.SetContent(Encoding.UTF8.GetBytes(body), "UTF-8", FormatType.JSON);
                CommonResponse response = client.GetCommonResponse(request);
                return(response);
            }
            catch (ServerException ex)
            {
                throw ex;
            }
            catch (ClientException ex)
            {
                throw ex;
            }
        }
예제 #2
0
        public object ImageDetection(string url)
        {
            IClientProfile profile = DefaultProfile.GetProfile(
                Region_Id, API_KEY, SECRET_KEY);

            DefaultAcsClient client  = new DefaultAcsClient(profile);
            CommonRequest    request = new CommonRequest();

            request.Method     = MethodType.POST;
            request.Domain     = "green.cn-shanghai.aliyuncs.com";
            request.Version    = "2018-05-09";
            request.UriPattern = "/green/image/scan";
            // request.Protocol = ProtocolType.HTTP;

            request.AddHeadParameters("Content-Type", "application/json");
            var queryObj = new {
                scenes = new [] { "p**n", "terrorism", "ad", "live", "logo" },
                tasks  = new [] { new { url } }
            };
            var requestBody = Newtonsoft.Json.JsonConvert.SerializeObject(queryObj);


            request.SetContent(System.Text.Encoding.Default.GetBytes(requestBody), "utf-8", FormatType.JSON);
            CommonResponse response = client.GetCommonResponse(request);

            return(response.Data);
        }
예제 #3
0
        protected T RequestAliyun <T>(string url, string version, MethodType methodType, string region, string domain, Dictionary <string, string> args, Dictionary <string, string> headers = null)
        {
            DefaultAcsClient client;

            if (headers == null)
            {
                headers = new Dictionary <string, string> {
                    { "Content-Type", "application/x-www-form-urlencoded" }
                }
            }
            ;
            if (string.IsNullOrWhiteSpace(_roleName))
            {
                if (string.IsNullOrWhiteSpace(_accessKey) || string.IsNullOrWhiteSpace(_secretKey))
                {
                    throw new ArgumentException("ACK方式参数错误");
                }
                client = new DefaultAcsClient(DefaultProfile.GetProfile(region, _accessKey, _secretKey));
            }
            else
            {
                client = new DefaultAcsClient(DefaultProfile.GetProfile(region), new InstanceProfileCredentialsProvider(_roleName));
            }
            var request = new CommonRequest
            {
                Method     = methodType,
                Domain     = domain,
                Version    = version,
                UriPattern = url
            };

            // request.Protocol = ProtocolType.HTTP;
            foreach (var item in args)
            {
                request.AddQueryParameters(item.Key, item.Value);
            }
            foreach (var item in headers)
            {
                request.AddHeadParameters(item.Key, item.Value);
            }
            request.SetContent(System.Text.Encoding.Default.GetBytes(""), "utf-8", FormatType.JSON);
            var response = client.GetCommonResponse(request);

            return(response.Data.ToJsonObj <T>());
        }
    }
        public void Add()
        {
            UnmarshallerContext context  = new UnmarshallerContext();
            CommonRequest       instance = new CommonRequest();

            instance.AddQueryParameters("AddQueryParameters", "a");
            context.ResponseDictionary = instance.QueryParameters;
            Assert.Equal("a", context.StringValue("AddQueryParameters"));

            instance.AddBodyParameters("AddBodyParameters", "b");
            context.ResponseDictionary = instance.BodyParameters;
            Assert.Equal("b", context.StringValue("AddBodyParameters"));

            instance.AddHeadParameters("AddHeadParameters", "c");
            context.ResponseDictionary = instance.HeadParameters;
            Assert.Equal("c", context.StringValue("AddHeadParameters"));

            instance.AddPathParameters("AddPathParameters", "d");
            context.ResponseDictionary = instance.PathParameters;
            Assert.Equal("d", context.StringValue("AddPathParameters"));
        }
예제 #5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public DetectionResult Detection(string url)
        {
            try
            {
                IClientProfile profile = DefaultProfile.GetProfile(
                    Region_Id, API_KEY, SECRET_KEY);

                DefaultAcsClient client  = new DefaultAcsClient(profile);
                CommonRequest    request = new CommonRequest();
                request.Method     = MethodType.POST;
                request.Domain     = "green.cn-shanghai.aliyuncs.com";
                request.Version    = "2018-05-09";
                request.UriPattern = "/green/image/scan";

                request.AddHeadParameters("Content-Type", "application/json");
                var queryObj = new
                {
                    scenes = new[] { "p**n" },
                    tasks  = new[] { new { url } }
                };

                var requestBody = JsonConvert.SerializeObject(queryObj);

                request.SetContent(Encoding.Default.GetBytes(requestBody), "utf-8", FormatType.JSON);
                CommonResponse response  = client.GetCommonResponse(request);
                var            aliyunRet = JsonConvert.DeserializeObject <AliyunResult>(response.Data);

                var ret = new DetectionResult()
                {
                    Platform = "阿里"
                };

                if (aliyunRet.code == 200)
                {
                    var data1  = aliyunRet.data.FirstOrDefault(o => o.code == 200);
                    var result = data1.results.FirstOrDefault(o => o.scene == "p**n");
                    switch (result.label)
                    {
                    case "normal":
                        ret.Result = DetectionResultType.Normal;
                        break;

                    case "sexy":
                        ret.Result = DetectionResultType.Sexy;
                        break;

                    case "p**n":
                        ret.Result = DetectionResultType.P**n;
                        break;

                    default:
                        ret.Result = DetectionResultType.Unknow;
                        break;
                    }

                    ret.Items.Add(new DetectionResultItem {
                        TypeName = result.label, Suggestion = result.rate
                    });
                }

                ret.SourceResult = JsonConvert.SerializeObject(aliyunRet, Formatting.Indented);
                return(ret);
            }
            catch (Exception ex)
            {
                return(new DetectionResult {
                    Error = ex.Message, Platform = "阿里"
                });
            }
        }