1.阿里免費提供500次識別。須要購買該產品。json
2.產品購買成功後,獲取appcode值,這個要放代碼中的appcode中。app
3.識別的圖片路徑ide
public static void Main(string[] args) { //身份證識別 // Console.WriteLine("Hello World!"); String url = "http://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json"; String appcode = "本身的AppCode"; String img_file = "識別的圖片路徑"; //若是輸入帶有inputs, 設置爲True,不然設爲False bool is_old_format = false; //若是沒有configure字段,config設爲'' //String config = ''; String config = "{\\\"side\\\":\\\"face\\\"}"; String method = "POST"; String querys = ""; FileStream fs = new FileStream(img_file, FileMode.Open); BinaryReader br = new BinaryReader(fs); byte[] contentBytes = br.ReadBytes(Convert.ToInt32(fs.Length)); String base64 = System.Convert.ToBase64String(contentBytes); String bodys; if (is_old_format) { bodys = "{\"inputs\" :" + "[{\"image\" :" + "{\"dataType\" : 50," + "\"dataValue\" :\"" + base64 + "\"" + "}"; if (config.Length > 0) { bodys += ",\"configure\" :" + "{\"dataType\" : 50," + "\"dataValue\" : \"" + config + "\"}" + "}"; } bodys += "]}"; } else { bodys = "{\"image\":\"" + base64 + "\""; if (config.Length > 0) { bodys += ",\"configure\" :\"" + config + "\""; } bodys += "}"; } HttpWebRequest httpRequest = null; HttpWebResponse httpResponse = null; if (0 < querys.Length) { url = url + "?" + querys; } if (url.Contains("https://")) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); //httpRequest 路徑 httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url)); } else { httpRequest = (HttpWebRequest)WebRequest.Create(url); } httpRequest.Method = method; httpRequest.Headers.Add("Authorization", "APPCODE " + appcode); //根據API的要求,定義相對應的Content-Type httpRequest.ContentType = "application/json; charset=UTF-8"; if (0 < bodys.Length) { byte[] data = Encoding.UTF8.GetBytes(bodys); using (Stream stream = httpRequest.GetRequestStream()) { stream.Write(data, 0, data.Length); } } try { httpResponse = (HttpWebResponse)httpRequest.GetResponse(); } catch (WebException ex) { httpResponse = (HttpWebResponse)ex.Response; } if (httpResponse.StatusCode != HttpStatusCode.OK) { Console.WriteLine("http error code: " + httpResponse.StatusCode); Console.WriteLine("error in header: " + httpResponse.GetResponseHeader("X-Ca-Error-Message")); Console.WriteLine("error in body: "); Stream st = httpResponse.GetResponseStream(); StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8")); Console.WriteLine(reader.ReadToEnd()); } else { Stream st = httpResponse.GetResponseStream(); StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8")); Console.WriteLine(reader.ReadToEnd()); } Console.WriteLine("\n"); Console.ReadLine(); } public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; }