美文网首页
[C#] 调用腾讯云接口 名片识别(v2)

[C#] 调用腾讯云接口 名片识别(v2)

作者: 贪吃鱼 | 来源:发表于2018-11-30 10:38 被阅读88次
        public ActionResult GetImgInfo(HttpPostedFileBase image)
        {
//            var stream = image.InputStream;
//            var bytes = new byte[stream.Length];
//            stream.Read(bytes, 0, bytes.Length);
//            // 设置当前流的位置为流的开始 
//            stream.Seek(0, SeekOrigin.Begin);
            var filename = image.FileName;
            var bytes = ImgHelper.GetPicThumbnail(image.InputStream, 50);
            var resstr = string.Empty;
            try
            {
                var webReq = (HttpWebRequest)WebRequest.Create("http://recognition.image.myqcloud.com/ocr/businesscard");
                webReq.Method = "POST";
                var boundary = "----" + DateTime.Now.Ticks.ToString("x");
                var formdataTemplate = "--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: application/octet-stream\r\n\r\n";
                var dataTemplate = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";
                var formdata = string.Format(formdataTemplate, "image", filename);
                webReq.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
                webReq.Host = "recognition.image.myqcloud.com";
                webReq.Headers.Add("authorization", GetSign());
                //文件头
                var formdataByte = Encoding.ASCII.GetBytes(formdata);
                //尾
                var footer = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
                Stream requestStream = webReq.GetRequestStream();
                requestStream.Write(formdataByte, 0, formdataByte.Length);//写入 文件头
                requestStream.Write(bytes, 0, bytes.Length);//写入 文件
                var dataByte1 = Encoding.ASCII.GetBytes(string.Format(dataTemplate, "appid", "xxxxxx"));
                requestStream.Write(dataByte1, 0, dataByte1.Length);//写入 参数1
                //var dataByte2 = Encoding.ASCII.GetBytes(string.Format(dataTemplate, "tid", 48650));
                //requestStream.Write(dataByte2, 0, dataByte2.Length);//写入 参数2
                //var dataByte3 = Encoding.ASCII.GetBytes(string.Format(dataTemplate, "uid", 48650));
                //requestStream.Write(dataByte3, 0, dataByte3.Length);//写入 参数3
                //var dataByte4 = Encoding.ASCII.GetBytes(string.Format(dataTemplate, "Filename", name));
                //requestStream.Write(dataByte4, 0, dataByte4.Length);//写入 参数4
                //var dataByte5 = Encoding.ASCII.GetBytes(string.Format(dataTemplate, "Upload", "Submit Query"));
                //requestStream.Write(dataByte5, 0, dataByte5.Length);//写入 参数5
                requestStream.Write(footer, 0, footer.Length);//写入 尾
                requestStream.Close();
                var response = (HttpWebResponse)webReq.GetResponse();
                var sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                var res = sr.ReadToEnd();
                sr.Close();
                response.Close();
                resstr = res;
            }
            catch (WebException we)
            {
                if (we.Status != WebExceptionStatus.ProtocolError) return Json(resstr);
                using (var s = we.Response.GetResponseStream())
                {
                    var reader = new StreamReader(s, Encoding.UTF8);
                    resstr = reader.ReadToEnd();
                }
            }
            return Json(resstr);
        }

上面就是调用腾讯云的接口 利用 C# 后台模拟form提交请求

把appid改成自己的腾讯云的id就可以用了

我在网上没有搜到 C#的sdk 然后自己尝试了后台提交就是不好使, 后来找到模拟form表单提交的方法好使了, 主要就是提交的格式问题

此方法转载https://blog.csdn.net/sh2015yao/article/details/39317299

相关文章

  • [C#] 调用腾讯云接口 名片识别(v2)

    上面就是调用腾讯云的接口 利用 C# 后台模拟form提交请求 把appid改成自己的腾讯云的id就可以用了 我在...

  • 调用腾讯优图识别名片

    钉钉端实现扫名片,调用腾讯优图识别名片信息 调用后台接口获取腾讯优图的请求的url以及请求头请求体,appid,鉴...

  • OCR 初步测试

    几个OCR平台对比分析:名片全能王、云脉、百度云-文字识别、腾讯云-文字识别 名片全能王 云脉 百度云-文字识别 ...

  • python体验名片识别OCR

    想使用名片识别OCR,主要调研了腾讯云的智能图像和腾讯优图。 腾讯云 解析出来的汉字直接是unicode,比如u'...

  • 腾讯云api语音识别模块使用

    本教程适用于安卓开发调用腾讯云api接口。 本教程使用的是一句话识别,java版。 1.下载代码 2.在Andro...

  • react-native上传文件时boundary 引号问题

    之前使用腾讯云的接口进行ocr识别身份证,腾讯的这个叫做万象优图,腾讯的做法是将图片上传到他们的服务器然后给你识别...

  • nodejs实现名片识别

    一、说明: 百度云提供了名片识别的api,每天可以免费调用500次:https://cloud.baidu.com...

  • 名片扫描识别API

    关键词:名片识别 移动端名片识别 云端名片识别 服务器端名片识别 名片识别SDK 名片识别api 一、名片识别背景...

  • 名片识别/名片拍照识别/名片扫描识别SDK

    关键词:名片OCR识别、名片识别录入、名片信息录入、名片信息扫描录入、名片拍照识别、名片识别sdk、名片识别api...

  • python 腾讯API 名片识别 通用图片转文字

    记录名片识别和图片转文字。腾讯AI开放平台提供的名片OCR很强大, 而且可以免费使用, 所以本文使用的是腾讯AI开...

网友评论

      本文标题:[C#] 调用腾讯云接口 名片识别(v2)

      本文链接:https://www.haomeiwen.com/subject/dwmccqtx.html