httpURLConnection实现自动登功能提交表单

httpURLConnection实现自动登功能提交表单

在提交表单时候,我感觉最麻烦的是登录时候,网页不断提示我未登录,所以我在第一次登录时候保留了cookie填入了第二次登录的链接中;需要注意的有这种方法可以提交信息但需要知道表单信息;对于部分网页有验证码要求,需要其他工具来实现帮助登录.

public static void main(String[] args){
URL url;
url=new URL(“http://xxx.xx.xx.xx:80/login”);//输入url地址
String logp=”username=xxx&password=xxx”;//输入用户名和密码
String cookies;//本地cookie

HttpURLConnection httpurlconnection;//创建
//第一次登录
httpurlconnection = (HttpURLConnection)url.openConnection();//获取
//根据提交方式来设置链接属性
httpurlconnection.setDoOutput(true);//输出流
httpurlconnection.setDoInput(true);
httpurlconnection.setUseCaches(true);//利用到session保持登录时本地的cache
httpurlconnection.setRequestMethod(“POST”);//设置提交方式
httpurlconnection.setRequestProperty(“此处是浏览器版本号,在浏览器输入栏输入about:version”);//可以添加任意多属性建议将f12浏览器网页中属性都加入
httpurlconnection.setRequestProperty(“其他属性,浏览器中输入f12”);
OutputStream out=httpurlconnection.getOutputStream();
out.write(logp.getBytes());//以字节流写入数据
out.flush();//刷新进输出流
out.close();//关闭流
httpurlconnection.connect();//开启链接
cookie=httpurlconnection.getHeaderField(“Set-Cookie”).split(“;”)[0];//从头部获取cookie
httpurlconnection.disconnect;//断开连接为下一次做准备,这里如果不断开,提交方式post不能修改成get或者do,且网页仍然是login页,断开的话,则产生了新的httpurlconnection
url=new URL(“新的操作页面url,表单url”);
//同上加入属性
httpurlconnection.setDoOutput(true);//输出流
httpurlconnection.setDoInput(true);
......
httpurlconnection.setRequestProperty(“Cookie”,cookie);//将登录时候cookie写入下一次登录中
httpurlconnection.setReadTimeout(1000);
httpurlconnection.setTimeout(1000);

String text=”userid=1201&other=12931&code=”;//表单属性及值
out=httpurlconnection.getOutputStream();
out.write(text.getBytes());
out.flush();
out.close();

System.out.println(“获取的是”+httpurlconnection.getRequestCode());//获取返回码
if(httpurlconnection.getRequestCode()==200){
ImputStreamReader inputs=new InputStreamReader(httpurlconnection.getInputStream());
BufferedReader buf=new BufferedReader(inputs);
String lines;
while((lines=buf.readLine())!=null){
lines=new String(lines.getBytes(),”utf-8”);
System.out.println(lines);
}else{
System.out.println(“链接有误”);
}
}m.disconnect();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值