在使用java编写人脸识别功能的时候ocx调用dll编写腾讯提供的服务,为什么会出现http response code:423 异常

HttpClient get请求在HttpResponse中无法获得Location的问题
我通过httpclient的get方法访问,
通过返回的response的头部的location可以得到服务器的重定向地址(Location)
在java环境下测试都没问题
可是在安卓SDK环境下 却得不到response的location
通过抓包分析,发现在android下,
httpclient的实例执行get请求后,一起连重定向的get方法都执行了&
所以最后得到的response是重定向之后地址的get请求的response,所以得不到locatioon,而且responseCode==200,而不是在java测试环境下的302,说明这个时候的response是重定向之后的response
这个时候需要阻止HttpClient的自动重定向,方法如下:
public static String &getLocationMethod(String reqUrl, Context context) {
& & & & &DefaultHttpClient httpclient = new DefaultHttpClient();
& & & & String location =
& & & & int responseCode = 0;
& & & & try {
& & & & & & final HttpGet request = new HttpGet(reqUrl);
& & & & & & HttpParams params = new BasicHttpParams();
& & & & & & params.setParameter(&http.protocol.handle-redirects&, false); // 默认不让重定向
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & // 这样就能拿到Location头了
& & & & & & request.setParams(params);
& & & & & & HttpResponse response = httpclient.execute(request);
& & & & & & responseCode = response.getStatusLine().getStatusCode();
& & & & & & Header[] headers = response.getAllHeaders();
& & & & & &if(responseCode==302){
& & & & & & & Header locationHeader = response.getFirstHeader(&Location&);
& & & & & & &if (locationHeader != null) {
& & & & & & & & location = locationHeader.getValue();
& & & & & & & }
& & & & & }
& & & & } catch (Exception e) {
& & & & & & e.printStackTrace();
& & & & & & MyLog.d(&exception=&, e.toString());
添加 &params.setParameter(&http.protocol.handle-redirects&, false);之后返回结果如下:
ResponseCode= & &302
Date:Sun, 04 Jan :36 GMT
Server:Abloomy Http Server 1.0
Connection:Close
Cache-Control:no-store
Pragma:no-caches
Last-Modified:Sun, 04 Jan :36 GMT
Content-Typ:text/ charset=iso-8859-1
Content-Length:1016
Expires:Mon, 01 Jan :00 GM
Location:http://124.205.91.166/i8n/index.php?wlanacip=124.205.91.166&wlanacname=124.205.91.180&wlanuserip=224.48.0.1&vslanusermac=f05a0965503c&vslanessid=ABLOOMY-WK
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'您好, []|
首款登陆iOS的人脸识别应用FaceVault
腾讯科技讯(琴岛)北京时间4月28日消息,据国外媒体报道,最近iOS商店中推出了一款人脸识别应用FaceVault。它和Ice Cream Sandwich(Android 4.0名称)中的Facial Unlock(面部解锁)功能类似,其中关键一点不同之处在于,Apple对其锁键屏保有着更为严格的限制,因此FaceVault用户并不能进行滑动解锁。人脸识别应用FaceVault此前并不支持这种面部识别应用,而FaceVault算是首款将人脸识别带到 iOS 的应用,让智能手机成为一个个人照片保险箱。这款应用的人脸识别是基于苹果前置摄像头和Eigenface特征脸算法来进行分析而实现的,后者则是目前为止最为先进的人脸识别技术。这款应用的开发者Robert Neagu表示,“这种算法很先进,即使戴上眼镜或化了妆,仍然可以完成解锁。”如果人脸识别失败,用户就会自动转入另一个屏幕,然后用后备密码完成解锁。此外,FaceVault 安全性能也很高,如果有其他人企图登录这款应用,摄像头就会拍下对方的样子,这样,用户就可以知道有谁想偷偷潜入自己的私密相册。对于FaceVault的安全性能,应用描述页面上有很好的陈述,“那些和你长相相似的人也可以解锁这款应用;使用这款应用进行人脸识别的时候需要保持顺畅的网络连接。”2010年,苹果申请了一项基于面部识别的电子设备操作调整技术的专利,这样看来,苹果在不久的未来是否也有推出面部识别服务的打算呢?FaceVault应用只需99美分,用户可到此地址进行购买(/us/app/facevault/id?ls=1&mt=8)。
[责任编辑:loiswang]
(请登录发言,并遵守)
如果你对科技频道有任何意见或建议,请到交流平台反馈。【】
新闻排行财经科普数码科技
Copyright & 1998 - 2017 Tencent. All Rights Reserved大家都在下
  从今年的双十一的销售成绩看,华为、魅族、小米形成了三国鼎立的局...
过年期间,大家一定收到和派发很多红包了吧,不管是收到的还是派发的红...
还没关注下载之家微信 的亲们赶紧扫一扫左侧的二维码吧!
亲们赶紧扫一扫关注下载之家的微信与我们互动吧!
微信公众号新浪微博
拼音索引:}

我要回帖

更多关于 ocx调用dll编写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信