Android 解决服务端验证码问题
服务端验证码解决方法。
在服务端生成验证码后会把验证码字符串存在服务端的session中,等待用户提交进行比对。为了保证服务器与客户端的一对一的关系,所以出现了session 和cookie技术。客户端的cookie 存放的是服务端session 的key值。
(1)在取得服务端验证码图片时,同时取得Cookie,从Cookie中取得JSESSIONID(服务端是用java开发)的值,将其放到一个全局静态变量中。
(2)提交内容时一起把JSESSIONID的值传过去。
(3)如果服务器端提示验证码错误时,就在此线程中再开辟一个线程重新获取验证码图片。
从服务端取得图片:
HttpGet get=new HttpGet("http://www.qd-n-tax.gov.cn/sst/getVCI");
DefaultHttpClient client=new DefaultHttpClient();
HttpResponse response=client.execute(get);
if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
HttpEntity entity=response.getEntity();
InputStream is=entity.getContent();
bitmap=BitmapFactory.decodeStream(is);
is.close();
}
从服务端取得cookie:
//得到服务端Cookie
List<Cookie>cookies=client.getCookieStore().getCookies();
for(int i=0;i<cookies.size();i++){
//取得Cookie['JSESSIONID']的值存在静态变量中
if("JSESSIONID".equals(cookies.get(i).getName())){
TsjbActivity.JSESSIONID=cookies.get(i).getValue();
break;
}
}
将session id返回个服务器,保证服务器与客户端一对一:
HttpPost post=new HttpPost(path);
post.setEntity(new UrlEncodedFormEntity(list,HTTP.UTF_8));
if(null!=TsjbActivity.JSESSIONID){
//为了与服务端的session交互,将SESSIONID发给服务器
post.setHeader("Cookie", "JSESSIONID="+TsjbActivity.JSESSIONID);
}
HttpResponse response=new DefaultHttpClient().execute(post);
Android 解决服务端验证码问题的更多相关文章
- Android从服务端获取json解析显示在客户端上面
Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...
- android与服务端通讯时使用到的GZIP压缩及解压
为了减小android项目与服务端进行通讯时的数据流量,我们可以使用GZIP对服务端传输的数据进行压缩,在android客户端解压.或在客户端压缩,在服务端解压.代码如下: android客户端的GZ ...
- 使用Httpclient 完美解决服务端跨域问题
项目需求: jsonp是从前台js的角度考虑,通过Ajax调用springMVC的接口.同一个ip.同一个网络协议.同一个端口,三者都满足就是同一个域,否则就是跨域问题了.首页广告需要一个轮播的效果, ...
- Android—Socket服务端与客户端用字符串的方式互相传递图片
发送图片: 首先找到具体传递的图片: private Bitmap getimage(String srcPath) { BitmapFactory.Options newOpts = new Bit ...
- springmvc-3.2-jsr303解决服务端验证问题
从以前的验证:Stringutils.isEmpty....到struts的验证:xxxvalidate 现在使用jsr303使之更加简单 依赖hibernate-validator-4.xx.ja ...
- Android客户端与PHP服务端交互(一)---框架概述
背景 作为一个普通上班族,总是想做一些自认为有意义的事情,于是乎准备成立一个工作室,尽管目前正在筹备阶段,但是之前有些朋友提出一些需求的时候,我发现自己的能力还是有限,直到最近和一些技术牛朋友聊起这事 ...
- delphi xe5 android 服务端和手机端的源码下载
xe5 android的服务端和手机客户端的源代码下载地址 http://files.cnblogs.com/nywh2008/AndroidTest.rar
- `fw服务端非完整` 工程开发初期的工作
前面写到了一些关于cocos2dx在开发中的一些模块以及一些解决方法,那些都属于本人的个人简介和个人倾向的解决方案.最近这几天我完善了一下ui解析的部分,当然也只是抽出一点点时间去做的这件事情.我添加 ...
- 详解react/redux的服务端渲染:页面性能与SEO
亟待解决的疑问 为什么服务端渲染首屏渲染快?(对比客户端首屏渲染) react客户端渲染的一大痛点就是首屏渲染速度慢问题,因为react是一个单页面应用,大多数的资源需要在首次渲染前就加载 ...
随机推荐
- js用for循环为对象添加事件并传递参数
var objArr = getObjArr(id); for(var i=0; i<objArr.length; i++){ var param=objArr.param ad ...
- 坑爹火狐浏览器会记录表单数据,导致服务器控件点击事件出bug
解决方案:在form表单加入 autocomplete="off".
- <Win32_8>由浅入深——滚动条
滚动条在Win32程序中是非常常见的一个控件,它的功能和地位也就不言而喻了,在文本输出中算是一个难点…… 我将借用P先生的思路讲述两种不同风格滚动条,下面切入主题:(实例程序都是显示一张位图 当然, ...
- boost 相等与等价的区别
- PHP 将Base64图片保存到 Sae storage
<?php $file_dir='tu/'.date("Y/m/d").'/'; $fileName=create_guid(); $storage = new SaeSto ...
- 公共Webservice
网络上可供测试的Web Service腾讯QQ在线状态 WEB 服务Endpoint: http://www.webxml.com.cn/webservices/qqOnlineWebService. ...
- bootstrap初探
bootstrap资源 http://getbootstrap.com http://github.com/twbs http://www.bootcss.com bootstrap栅格系统 容器:流 ...
- 显示推送数据到mq成功,但是mq管理器中消息数量没增长
看服务器上的mq配置,看看mq_log,是不是存储满了?
- Debugging Failed Because Integrated Windows Authentication Is Not Enabled
To enable integrated Windows authentication Log onto the Web server using an administrator account. ...
- 获取subview
通常我们在view层级里面对subView的操作可以通过两种方式:1.保留一个subview的引用,然后在类中通过该引用对该subview进行操作,但是要注意在适当的位置添加内存维护的代码,退出前手动 ...