[求救]向一个网址提交form的问题

chanceqw 2003-10-08 02:51:48
由于要获得验证码,所以不能直接向目标页面提交。
整个过程是,首先向某个页面发出请求,获得其中验证码信息
形如<img src="/count.asp?sksid=44FEDF115A54B490DDD215A54B4A6831D15A54B44FEDF115A54B|2D8569|17E01E">
识别出这个图片之后,填写form
String queryString;
queryString+="ActType="+URLEncoder.encode("Add",enc);
queryString+="&CatID="+URLEncoder.encode(topic.getCatId(),enc);
......
URL url=new URL(postTarget);
URLConnection conn=url.openConnection();
if(conn instanceof HttpURLConnection){
HttpURLConnection httpConnection=(HttpURLConnection) conn;
httpConnection.setRequestMethod("POST");
httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

//Get an output stream for writing
OutputStream output=httpConnection.getOutputStream();
OutputStreamWriter out=new OutputStreamWriter(output,"gb2312");
out.write(queryString);
out.close();
output.close();
}

但是提交以后,返回信息说我验证码错误 但是我提交的是正确的阿
是不是前一页有session没保存下来。
可以肯定的是:我研究了form域,保证提交了所有input的value
请问怎么解决阿?
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chanceqw 2003-10-09
  • 打赏
  • 举报
回复
我用了Jakarta的HttpClient还是没有解决问题
yzhz 2003-10-08
  • 打赏
  • 举报
回复
他的验证信息准是放在cookie里而不是session,我们就是这么做的。
chanceqw 2003-10-08
  • 打赏
  • 举报
回复
救命那~~
chanceqw 2003-10-08
  • 打赏
  • 举报
回复
高手快来拿分阿~~
chanceqw 2003-10-08
  • 打赏
  • 举报
回复
我已经识别了这个图片,并且确信正确识别了
只是提交了以后总是说我验证码错误,不知道为什么。谢谢
Yanbin_Q 2003-10-08
  • 打赏
  • 举报
回复
/count.asp?sksid=44FEDF115A54B490DDD215A54B4A6831D15A54B44FEDF115A54B|2D8569|17E01E

你上面说的那个本身就是一个图片,您必须测试确认生成验证码是你所预想的那般,一般验证码是图片中的随机数字,可能sksid只是作为一个随机数产生时的种子数。
chanceqw 2003-10-08
  • 打赏
  • 举报
回复
可能我没搞清验证码的原理
我的理解是:当一个用户请求页面时,生成一个sessionid
根据这个sessionid生成验证码图片
然后当用户提交form时,服务器端计算提交的验证码是否和sessionid匹配

如果用HttpURLConnection连接,前一个connection的session信息是否还在呢?

如果我上面的理解错了,那验证码的过程是怎样的?多谢指教

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧