java如何自动填充网页上的用户名和密码?
1个回答
展开全部
三楼是一种比较常用方法,但一般用于客户端软件,这里再给出一种方法:
用java模拟post提交,代码比较长,你可以去网上搜索一下。核心内容如下:
URL url = new URL(urlAddr); //urlAddr:网页登录页面的url地址
conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(params.length()));
conn.setDoInput(true);
conn.connect();
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
out.write(params.toString()); //params就是post的参数,形如username=abcd&pass=1234
out.flush();
out.close();
针对asp.net的网页,情况会更复杂一些,因为asp.net需要同时提交__VIEWSTATE的值,一般的做法是二次提交的方法。第一次是读取登录网页的源代码,从源码中用正则表达式过滤出__VIEWSTATE值,然后将这个值作为参数和用户名、密码一起提交到登录网站。
用java模拟post提交,代码比较长,你可以去网上搜索一下。核心内容如下:
URL url = new URL(urlAddr); //urlAddr:网页登录页面的url地址
conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(params.length()));
conn.setDoInput(true);
conn.connect();
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
out.write(params.toString()); //params就是post的参数,形如username=abcd&pass=1234
out.flush();
out.close();
针对asp.net的网页,情况会更复杂一些,因为asp.net需要同时提交__VIEWSTATE的值,一般的做法是二次提交的方法。第一次是读取登录网页的源代码,从源码中用正则表达式过滤出__VIEWSTATE值,然后将这个值作为参数和用户名、密码一起提交到登录网站。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询