想通过OCR服务来做身份证识别,但执行到hc.GetData()就出现“500 内部服务器错误”,请教是不是代码不正确?
Foxtable使用hc.GetData(),但示例代码用的是httpClient.PostAsync(),是不是这里出问题,该如何定呢?多谢。
===============================
以下为Foxtable代码:
Dim hc As New HttpClient(http://netocr.com/api/recog.do)
'设置参数
hc.Timeout = 5 '秒
hc.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36")
hc.FormData.Add("XXXXX","key")
hc.FormData.Add("XXXXX","secret")
hc.FormData.Add("2","typeId")
'添加文件
hc.Files.Add("file","C:\图片2\IMAG3622.jpg")
Output.Show(hc.GetData())
===============================
以下为OCR示例代码:
Public String PostIdCardDataToXiangYun(String filePath)
{
String url = "http://netocr.com/api/recog.do";
System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();
httpClient.MaxResponseContentBufferSize = 256000;
httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36");
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
System.Net.Http.MultipartFormDataContent content = new System.Net.Http.MultipartFormDataContent();
//增加文件数据
content.Add(new System.Net.Http.StreamContent(fileStream), "file", "idcard.jpg");
//增加参数
content.Add(new StringContent("xxxx"),"key");
content.Add(new StringContent("ddddd"),"secret");
//二代身份证正面识别
content.Add(new StringContent("2"),"typeId");
content.Add(new StringContent("json"),"format");
System.Net.Http.HttpResponseMessage response = httpClient.PostAsync(new Uri(url), content).Result;
string result = response.Content.ReadAsStringAsync().Result;
fileStream.Close();
return result;
}