以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教HttpClient代码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104447)

--  作者:Exon_Liang
--  发布时间:2017/7/29 12:48:00
--  请教HttpClient代码问题

想通过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;
}

 


--  作者:有点蓝
--  发布时间:2017/7/29 14:43:00
--  
试试

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("key","xxxx") 
hc.FormData.Add("secret","xxxx") 
hc.FormData.Add("typeId","2") 
hc.FormData.Add("format","ddddd") 
\'添加文件
hc.Files.Add("file","C:\\图片2\\IMAG3622.jpg")
Output.Show(hc.GetData())

或者

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.C
\'添加文件
hc.Files.Add("file","C:\\图片2\\IMAG3622.jpg")
Output.Show(hc.GetData())

--  作者:Exon_Liang
--  发布时间:2017/7/29 15:30:00
--  
可以了!第一种方法。谢谢!