311 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			311 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using AOP.Common.DataConversion;
							 | 
						|||
| 
								 | 
							
								using Baidu.Aip.Face;
							 | 
						|||
| 
								 | 
							
								using Newtonsoft.Json;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.IO;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Net;
							 | 
						|||
| 
								 | 
							
								using System.Net.Http;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.Threading.Tasks;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace SgManager.AI
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public static class FaceClass
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public static Baidu.Aip.Face.Face getFaceClant()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            // 设置APPID/AK/SK
							 | 
						|||
| 
								 | 
							
								            var APP_ID = System.Configuration.ConfigurationManager.AppSettings["APP_ID"].ToString();
							 | 
						|||
| 
								 | 
							
								            var API_KEY = System.Configuration.ConfigurationManager.AppSettings["API_KEY"].ToString();
							 | 
						|||
| 
								 | 
							
								            var SECRET_KEY = System.Configuration.ConfigurationManager.AppSettings["SECRET_KEY"].ToString();
							 | 
						|||
| 
								 | 
							
								            var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);
							 | 
						|||
| 
								 | 
							
								            client.Timeout = 60000;  // 修改超时时间
							 | 
						|||
| 
								 | 
							
								            return client;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public static object SearchFileFace(String imagePath)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            String strbaser64 = ConvertDataFormatAndImage.ImageToByte64String(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg); // 图片的base64编码
							 | 
						|||
| 
								 | 
							
								            var imageType = "BASE64";
							 | 
						|||
| 
								 | 
							
								            var groupIdList = "SNEC_0";
							 | 
						|||
| 
								 | 
							
								            // 如果有可选参数
							 | 
						|||
| 
								 | 
							
								            var options = new Dictionary<string, object>{
							 | 
						|||
| 
								 | 
							
								            {"quality_control", "NORMAL"},
							 | 
						|||
| 
								 | 
							
								            {"liveness_control", "NORMAL"},
							 | 
						|||
| 
								 | 
							
								            {"max_user_num", 1}
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								            // 带参数调用人脸搜索
							 | 
						|||
| 
								 | 
							
								            object result = new object();
							 | 
						|||
| 
								 | 
							
								            List<faceResult> frs = new List<faceResult>();
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                result = getFaceClant().Search(strbaser64, imageType, groupIdList, options);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (result != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var data = JsonConvert.DeserializeObject<dynamic>(JsonConvert.SerializeObject(result));
							 | 
						|||
| 
								 | 
							
								                    String error_msg = data.error_msg;
							 | 
						|||
| 
								 | 
							
								                    String errorCode = data.error_code;
							 | 
						|||
| 
								 | 
							
								                    if (error_msg == "SUCCESS")
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        for (int i = 0; i < data.result.user_list.Count; i++)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            faceResult fr = new faceResult();
							 | 
						|||
| 
								 | 
							
								                            fr.user_id = data.result.user_list[i].user_id;
							 | 
						|||
| 
								 | 
							
								                            fr.user_info = getUserName(fr.user_id);
							 | 
						|||
| 
								 | 
							
								                            fr.errMess = error_msg;
							 | 
						|||
| 
								 | 
							
								                            try
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                string score = data.result.user_list[i].score.ToString();
							 | 
						|||
| 
								 | 
							
								                                fr.score = double.Parse(score);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            catch
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                fr.score = 0;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (fr.score > 85)
							 | 
						|||
| 
								 | 
							
								                                frs.Add(fr);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        faceResult fr = new faceResult();
							 | 
						|||
| 
								 | 
							
								                        fr.errMess = error_msg;
							 | 
						|||
| 
								 | 
							
								                        fr.errCode = errorCode;
							 | 
						|||
| 
								 | 
							
								                        frs.Add(fr);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                faceResult fr = new faceResult();
							 | 
						|||
| 
								 | 
							
								                fr.errMess = ex.ToString();
							 | 
						|||
| 
								 | 
							
								                frs.Add(fr);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return frs;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public static object SearchFace(String url)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var image = url;
							 | 
						|||
| 
								 | 
							
								            var imageType = "URL";
							 | 
						|||
| 
								 | 
							
								            var groupIdList = "SNEC_0";
							 | 
						|||
| 
								 | 
							
								            // 如果有可选参数
							 | 
						|||
| 
								 | 
							
								            var options = new Dictionary<string, object>{
							 | 
						|||
| 
								 | 
							
								            {"quality_control", "NORMAL"},
							 | 
						|||
| 
								 | 
							
								            {"liveness_control", "LOW"},
							 | 
						|||
| 
								 | 
							
								            {"max_user_num", 1}
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								            // 带参数调用人脸搜索
							 | 
						|||
| 
								 | 
							
								            object result = new object();
							 | 
						|||
| 
								 | 
							
								            try
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                result = getFaceClant().Search(image, imageType, groupIdList, options);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return null;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            List<faceResult> frs = new List<faceResult>();
							 | 
						|||
| 
								 | 
							
								            if (result != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var data = JsonConvert.DeserializeObject<dynamic>(JsonConvert.SerializeObject(result));
							 | 
						|||
| 
								 | 
							
								                String error_msg = data.error_msg;
							 | 
						|||
| 
								 | 
							
								                if (error_msg == "SUCCESS")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    for (int i = 0; i < data.result.user_list.Count; i++)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        faceResult fr = new faceResult();
							 | 
						|||
| 
								 | 
							
								                        fr.user_id = data.result.user_list[i].user_id;
							 | 
						|||
| 
								 | 
							
								                        fr.user_info = getUserName(fr.user_id);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        try
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            string score = data.result.user_list[i].score.ToString();
							 | 
						|||
| 
								 | 
							
								                            fr.score = double.Parse(score);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        catch
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            fr.score = 0;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (fr.score > 85)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            frs.Add(fr);
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else return null;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return frs;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public static String getUserName(string id)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string userName = "未知用户";
							 | 
						|||
| 
								 | 
							
								            switch (id)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                case "A01844":
							 | 
						|||
| 
								 | 
							
								                    userName = "张腾云";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A04979":
							 | 
						|||
| 
								 | 
							
								                    userName = "张延强";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A05352":
							 | 
						|||
| 
								 | 
							
								                    userName = "王勇C";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A06539":
							 | 
						|||
| 
								 | 
							
								                    userName = "崔璐峰";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A04984":
							 | 
						|||
| 
								 | 
							
								                    userName = "杨新民";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A05303":
							 | 
						|||
| 
								 | 
							
								                    userName = "李文娟";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A04988":
							 | 
						|||
| 
								 | 
							
								                    userName = "马明";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                case "A06926":
							 | 
						|||
| 
								 | 
							
								                    userName = "王建峰";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								                default:
							 | 
						|||
| 
								 | 
							
								                    userName = "未知用户";
							 | 
						|||
| 
								 | 
							
								                    break;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return userName;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        // 在线活体检测
							 | 
						|||
| 
								 | 
							
								        public static string FaceVerify(string imagePath)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string token = AccessToken.getAccessToken();
							 | 
						|||
| 
								 | 
							
								            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceverify?access_token=" + token;
							 | 
						|||
| 
								 | 
							
								            Encoding encoding = Encoding.Default;
							 | 
						|||
| 
								 | 
							
								            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
							 | 
						|||
| 
								 | 
							
								            request.Method = "post";
							 | 
						|||
| 
								 | 
							
								            request.KeepAlive = true;
							 | 
						|||
| 
								 | 
							
								            String strbaser64 = ConvertDataFormatAndImage.ImageToByte64String(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg); // 图片的base64编码
							 | 
						|||
| 
								 | 
							
								            String str = "[{\"image\":\"" + strbaser64 + "\",\"image_type\":\"BASE64\",\"face_field\":\"quality,human\"}]";
							 | 
						|||
| 
								 | 
							
								            byte[] buffer = encoding.GetBytes(str);
							 | 
						|||
| 
								 | 
							
								            request.ContentLength = buffer.Length;
							 | 
						|||
| 
								 | 
							
								            request.GetRequestStream().Write(buffer, 0, buffer.Length);
							 | 
						|||
| 
								 | 
							
								            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
							 | 
						|||
| 
								 | 
							
								            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
							 | 
						|||
| 
								 | 
							
								            string result = reader.ReadToEnd();
							 | 
						|||
| 
								 | 
							
								            //Console.WriteLine("在线活体检测:");
							 | 
						|||
| 
								 | 
							
								            Console.WriteLine(result);
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        // 人脸注册
							 | 
						|||
| 
								 | 
							
								        public static string add(string user_id, string user_card, string imgUrl, string token)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            bool first = true;
							 | 
						|||
| 
								 | 
							
								            if (string.IsNullOrEmpty(token))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                token = AccessToken.getAccessToken();
							 | 
						|||
| 
								 | 
							
								                first = false;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=" + token;
							 | 
						|||
| 
								 | 
							
								            Encoding encoding = Encoding.Default;
							 | 
						|||
| 
								 | 
							
								            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
							 | 
						|||
| 
								 | 
							
								            request.Method = "post";
							 | 
						|||
| 
								 | 
							
								            request.KeepAlive = true;
							 | 
						|||
| 
								 | 
							
								            String str = "{\"image\":\"" + imgUrl + "\",\"image_type\":\"URL\",\"group_id\":\"SNEC_0\",\"user_id\":\"" + user_card + "\",\"user_info\":\"" + user_id + "\",\"quality_control\":\"LOW\",\"liveness_control\":\"NORMAL\"}";
							 | 
						|||
| 
								 | 
							
								            byte[] buffer = encoding.GetBytes(str);
							 | 
						|||
| 
								 | 
							
								            request.ContentLength = buffer.Length;
							 | 
						|||
| 
								 | 
							
								            request.GetRequestStream().Write(buffer, 0, buffer.Length);
							 | 
						|||
| 
								 | 
							
								            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
							 | 
						|||
| 
								 | 
							
								            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
							 | 
						|||
| 
								 | 
							
								            string result = reader.ReadToEnd();
							 | 
						|||
| 
								 | 
							
								            //Console.WriteLine("人脸注册:");
							 | 
						|||
| 
								 | 
							
								            //Console.WriteLine(result);
							 | 
						|||
| 
								 | 
							
								            var res = JsonConvert.DeserializeObject<dynamic>(result);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (result.Contains("Access token invalid or no longer valid") && first)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                token = null;
							 | 
						|||
| 
								 | 
							
								                add(user_id, user_card, imgUrl, token);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (result.Contains("face is already exist"))
							 | 
						|||
| 
								 | 
							
								                result = update(user_id, user_card, imgUrl, token);
							 | 
						|||
| 
								 | 
							
								            if (res.error_code == "0")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        // 人脸更新
							 | 
						|||
| 
								 | 
							
								        public static string update(string user_id, string user_card, string imgUrl, string token)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (string.IsNullOrEmpty(token))
							 | 
						|||
| 
								 | 
							
								                token = AccessToken.getAccessToken();
							 | 
						|||
| 
								 | 
							
								            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/update?access_token=" + token;
							 | 
						|||
| 
								 | 
							
								            Encoding encoding = Encoding.Default;
							 | 
						|||
| 
								 | 
							
								            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
							 | 
						|||
| 
								 | 
							
								            request.Method = "post";
							 | 
						|||
| 
								 | 
							
								            request.KeepAlive = true;
							 | 
						|||
| 
								 | 
							
								            String str = "{\"image\":\"" + imgUrl + "\",\"image_type\":\"URL\",\"group_id\":\"SNEC_0\",\"user_id\":\"" + user_card + "\",\"user_info\":\"" + user_id + "\",\"quality_control\":\"LOW\",\"liveness_control\":\"NORMAL\"}";
							 | 
						|||
| 
								 | 
							
								            byte[] buffer = encoding.GetBytes(str);
							 | 
						|||
| 
								 | 
							
								            request.ContentLength = buffer.Length;
							 | 
						|||
| 
								 | 
							
								            request.GetRequestStream().Write(buffer, 0, buffer.Length);
							 | 
						|||
| 
								 | 
							
								            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
							 | 
						|||
| 
								 | 
							
								            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
							 | 
						|||
| 
								 | 
							
								            string result = reader.ReadToEnd();
							 | 
						|||
| 
								 | 
							
								            if (result.Contains("user is not exist"))
							 | 
						|||
| 
								 | 
							
								                result = add(user_id, user_card, imgUrl, token);
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    public static class AccessToken
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        // 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存
							 | 
						|||
| 
								 | 
							
								        // 返回token示例
							 | 
						|||
| 
								 | 
							
								        public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        // 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务
							 | 
						|||
| 
								 | 
							
								        private static String clientId = "百度云应用的AK";
							 | 
						|||
| 
								 | 
							
								        // 百度云中开通对应服务应用的 Secret Key
							 | 
						|||
| 
								 | 
							
								        private static String clientSecret = "百度云应用的SK";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public static String getAccessToken()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            String authHost = "https://aip.baidubce.com/oauth/2.0/token";
							 | 
						|||
| 
								 | 
							
								            HttpClient client = new HttpClient();
							 | 
						|||
| 
								 | 
							
								            List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
							 | 
						|||
| 
								 | 
							
								            paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
							 | 
						|||
| 
								 | 
							
								            paraList.Add(new KeyValuePair<string, string>("client_id", System.Configuration.ConfigurationManager.AppSettings["API_KEY"].ToString()));
							 | 
						|||
| 
								 | 
							
								            paraList.Add(new KeyValuePair<string, string>("client_secret", System.Configuration.ConfigurationManager.AppSettings["SECRET_KEY"].ToString()));
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
							 | 
						|||
| 
								 | 
							
								            String result = response.Content.ReadAsStringAsync().Result;
							 | 
						|||
| 
								 | 
							
								            var to = JsonConvert.DeserializeObject<dynamic>(result);
							 | 
						|||
| 
								 | 
							
								            Console.WriteLine(result);
							 | 
						|||
| 
								 | 
							
								            return to.access_token;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |