以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  有没有通过api识别身份证的例子?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=104710)

--  作者:liufucan
--  发布时间:2017/8/3 15:31:00
--  有没有通过api识别身份证的例子?
现在api已经很流行很方便了,请教各位大神,狐表怎么对接各个api接口呢
--  作者:有点甜
--  发布时间:2017/8/3 15:39:00
--  

 你指的识别身份证是什么意思?

 

https://www.baidu.com/baidu?wd=api+%E8%BA%AB%E4%BB%BD%E8%AF%81&tn=monline_dg&ie=utf-8

 

 每种api的调用方式都不同,具体你要去看人家调用的方式。

 

 http://www.foxtable.com/mobilehelp/scr/0163.htm

 


--  作者:liufucan
--  发布时间:2017/8/3 17:37:00
--  
帮助中的阿里云全国物流查询接口是get方式,有没有post方式的例子?比方说同样是阿里云的身份识别api如何调用呢?

https://market.aliyun.com/products/57124001/cmapi010401.html?spm=5176.730005.0.0.0EtpbN#sku=yuncode440100000

--  作者:有点甜
--  发布时间:2017/8/3 19:31:00
--  

mark 识别身份证信息

 

Dim bmp As new Bitmap("d:\\abc.jpg")
Dim ms As new System.Io.MemoryStream()
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)

Dim arr(ms.Length) As Byte
ms.Position = 0
ms.Read(arr, 0, ms.Length)
ms.Close()

Dim strbase64 As String = Convert.ToBase64String(arr)
bmp.dispose
msgbox("读取图片完毕")

 

Dim body As String = "{""inputs"": [{""image"": {""dataType"": 50,""dataValue"": """ & strbase64 & """},""configure"": {""dataType"": 50,""dataValue"": ""{\\""side\\"":\\""face\\""}"" }}]}"
Dim appcode As String = "278b315cabac4df9a39478de0a8321ad" \'只有500次,改成自己的
Dim req = System.Net.WebRequest.Create("https://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json")
req.Method = "POST"
req.ContentType = "application/json; charset=UTF-8"
req.Headers.Add("Authorization", "APPCODE " & appcode)
Dim aryBuf As Byte() = Encoding.UTF8.GetBytes(body)
req.ContentLength = aryBuf.Length
Dim writer = req.GetRequestStream()
writer.Write(aryBuf, 0, aryBuf.Length)
writer.Close()
writer.Dispose()
Dim pos = req.GetResponse
msgbox("获取数据完毕")

 

Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close

Dim jo As JObject = Jobject.Parse(str)
msgbox(jo.ToString)

[此贴子已经被作者于2019/1/21 10:08:28编辑过]

--  作者:liufucan
--  发布时间:2017/8/4 16:39:00
--  
请教老师:返回的结果如何解析呢?
jo("outputs")("outputValue")("dataValue")("name")不对


调用的目标发生了异常。
Accessed JArray values with invalid key value: "outputValue". Int32 array index expected.

{ "outputs": [ { "outputLabel": "ocr_id", "outputMulti": {}, "outputValue": { "dataType": 50, "dataValue": "{ \\"address\\" : \\"浙江省杭州市余杭区文一西路969号\\", #地址信息 \\"config_str\\" : \\"{\\\\\\"side\\\\\\":\\\\\\"face\\\\\\"}\\", #配置信息,同输入configure \\"face_rect\\":{ \\"angle\\": -90, \\"center\\":{ \\"x\\" : 952, \\"y\\" : 325.5 }, \\"size\\":{ \\"height\\":181.99, \\"width\\":164.99 } }, #人脸位置,center表示人脸矩形中心坐标,size表示人脸矩形长宽,angle表示矩形顺时针旋转的度数。 \\"name\\" : \\"张三\\", #姓名 \\"nationality\\": \\"汉\\", #民族 \\"num\\" : \\"1234567890\\", #身份证号 \\"sex\\" : \\"男\\", #性别 \\"birth\\" : \\"20000101\\", #出生日期 \\"nationality\\" : \\"汉\\", #民族 \\"success\\" : true #识别结果,true表示成功,false表示失败 }" } }] }


--  作者:liufucan
--  发布时间:2017/8/4 16:44:00
--  
调用的目标发生了异常。
Cannot access child value on Newtonsoft.Json.Linq.JValue.

改成这样还是不行:
output.show(jo.Tostring)
If jo("outputs") IsNot Nothing Then
    For Each jt As JToken In jo("outputs")
        dr("认购姓名")= jt("outputValue")("dataValue")("name\\").ToString
        dr("身份证号码")= jt("outputValue")("dataValue")("num\\").ToString
        dr.save
    Next

End If


--  作者:liufucan
--  发布时间:2017/8/4 17:02:00
--  
Dim s As String =jo.Tostring
s = s.Replace("\\","")
Output.Show(s)
msgbox(s)
\'output.show(jo.Tostring)
If jo("outputs") IsNot Nothing Then
    For Each jt As JToken In jo("outputs")
        dr("认购姓名")= jt("outputValue")("dataValue")("name").ToString
        dr("身份证号码")= jt("outputValue")("dataValue")("num").ToString
        dr.save
    Next

End If

这样还是不行

--  作者:有点甜
--  发布时间:2017/8/4 17:09:00
--  
Dim jo As JObject = Jobject.Parse(str)
If jo("outputs") IsNot Nothing Then
    Dim json = jobject.parse(jo("outputs")(0)("outputValue")("dataValue"))
    msgbox(json.tostring)
    msgbox(json("address"))
    msgbox(json("name"))
    msgbox(json("num"))
End If

--  作者:liufucan
--  发布时间:2017/8/4 17:21:00
--  
OK了,谢谢老师。
--  作者:zhangjian222200
--  发布时间:2018/4/12 15:52:00
--  
mark