社区
Web 开发
帖子详情
java中通过httpclient下载指定的验证码失败
lonelydreamsym
2011-06-16 06:01:39
如题,地址为:http://www.lyjjzd.com/wfcx.asp,这里面查询时有验证码,在程序中通过httpclient访问这个面页,然后访问页面中的难码,但总是返回空信息,不知道为啥,这种访问访问其它网站的验证码都是正常的,挺让人郁闷的,给瞧瞧如何处理。
...全文
169
12
打赏
收藏
java中通过httpclient下载指定的验证码失败
如题,地址为:http://www.lyjjzd.com/wfcx.asp,这里面查询时有验证码,在程序中通过httpclient访问这个面页,然后访问页面中的难码,但总是返回空信息,不知道为啥,这种访问访问其它网站的验证码都是正常的,挺让人郁闷的,给瞧瞧如何处理。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
checktime
2011-07-01
打赏
举报
回复
之前遇到的问题是,用URL 类能获得 验证码,但是用httpclient时的 getResponseBodyAsStream 返回的时候,转成imageicon 出不来图片,后来发现,用in.avaiable()返回的是空,看解释说,返回0是正常的,然后直接用ByteArrayInputStream 转了一次再用BufferedImage再转一次,然后new ImageIcon 就出来了,还没研究为什么会这样,之前测试jsp时候没有问题,在asp下有这个问题,郁闷啊
xwmr1988
2011-06-17
打赏
举报
回复
大家好哦,路过
lonelydreamsym
2011-06-17
打赏
举报
回复
程序中保持会话的情况下,先访问页面,然后找到页面中的图片的url,再接着访问图片,也是不成的。
lonelydreamsym
2011-06-17
打赏
举报
回复
楼上几位的方法,早都试过了,都搞不定,才来这里开这个帖子的,大家可直接试下,找到url中直接在浏览器中是打不开的。我用java和net都测试过,获取不到图片。
xuejelly
2011-06-17
打赏
举报
回复
[Quote=引用 7 楼 magong 的回复:]
引用 3 楼 lonelydreamsym 的回复:
呵呵,这个是比较奇怪的,找对了url它也不会显示的,偶奇怪的也是这里,目前反复测试,除了直接在页面里能显示,其它各种方式都不显示,让人不是一般的郁闷。
你这样操作肯定可以:
1 用浏览器打开网页
2 浏览页面源码,找到参数,如".24566"之类的
3 将该参数附缀到URL中,可以直接下载到图片(我验证过)
那么你需要在……
[/Quote]
+1
magong
2011-06-17
打赏
举报
回复
[Quote=引用 3 楼 lonelydreamsym 的回复:]
呵呵,这个是比较奇怪的,找对了url它也不会显示的,偶奇怪的也是这里,目前反复测试,除了直接在页面里能显示,其它各种方式都不显示,让人不是一般的郁闷。
[/Quote]
你这样操作肯定可以:
1 用浏览器打开网页
2 浏览页面源码,找到参数,如".24566"之类的
3 将该参数附缀到URL中,可以直接下载到图片(我验证过)
那么你需要在程序中用httpclient模拟这个次序,第一步抓到网页后,从网页中萃取出正确的参数。
Fly_m
2011-06-16
打赏
举报
回复
我刚看一下url界面。
这里面它显示的图片,是根据后面的一个参数确定的。如果你随便给个参数的话,那是显示不了图片的。
我想这个随便数跟session相关。因此,你重新发请求,去读取这个图片,由于session变了,肯定读不了图片了。
因此,在读取图片时,要使用与前一次访问网页地址同样的一个session,否则就取不到图片。并且,访问一次图片变一次,所以不要重复访问(验证码重新生成了)。
小伙
2011-06-16
打赏
举报
回复
HttpAnalyzerStdV6这个工具你用过就最好(抓网页的)
你通过
httpGet= new HttpGet("http://www.lyjjzd.com/wfcx.asp")
httpGet.setHeader("Referer","页面由来的网页"); //有时候可以没有
response=httpclient.execute(httpGet);
String contentString = EntityUtils.toString(response.getEntity());
System.out.println(contentString); //这里面是你请求网址的所有内容;
你需要截取contentString的内容取得图片的href="url内容"
httpGet.abort() 终止httpGet请求
你再发送请求url内容;
httpGet= new HttpGet("http://www.lyjjzd.com/"+url内容) 这里面是你请验证码图片的完整url
File file = new File("C:/Users/guo/workspace/ghn/tesseract/cPic.gif");
response=httpclient.execute(httpGet);
InputStream is = response.getEntity().getContent();
FileOutputStream fos = new FileOutputStream(file);
int len;
byte[] b = new byte[buffer];
while((len=is.read(b,0,1024))!=-1){
fos.write(b,0,len);
}
fos.flush();
is.close();
fos.close();
这样可以保存图片..希望对您有用哦
hymagic
2011-06-16
打赏
举报
回复
学习学习
lonelydreamsym
2011-06-16
打赏
举报
回复
呵呵,这个是比较奇怪的,找对了url它也不会显示的,偶奇怪的也是这里,目前反复测试,除了直接在页面里能显示,其它各种方式都不显示,让人不是一般的郁闷。
magong
2011-06-16
打赏
举报
回复
验证码就是图片而已。
URL找对了就行了。
这个页面中的验证码需要一个URL参数来决定验证码,不是随机生成的,倒是有点奇怪。
lonelydreamsym
2011-06-16
打赏
举报
回复
自己顶下
网站商城APP上的短信
验证码
接口文档和demo支持PHP
java
c#等多种语言
短信
验证码
接口文档以及各种语言的demo 适用于网站,商城,APP注册登录时的短信验证
HttpClient
模拟登录实例
HttpClient
模拟登录实例,模拟登录网站,获取用户信息,登录后数据,带
验证码
登录,带解析HTML实例。
java
,C#,PHP等实现手机发送
验证码
Demo
用来实现手机发送
验证码
校验,包含
java
,C#,PHP等实现Demo还包括帮助文档
HttpClient
模拟登陆
NULL 博文链接:https://lxzqz.iteye.com/blog/2051318
Java
实现发送短信
验证码
功能
主要为大家详细介绍了
Java
实现发送短信
验证码
功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章