java 模拟浏览器提交表单后获取新url
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 模拟浏览器提交表单后获取新url相关的知识,希望对你有一定的参考价值。
模拟浏览器后,它的html语言中填写表单的表单提交到“action=search.php”,我怎么写?也写search.php?
然后实现跳转,怎么知道新的页面的地址呢??
第二部解析action中跳转的位置
第三部进行二次跳转。
解析可以用正则表达式 参考技术A 你用java写浏览器渲染?追问
HTTPclient, 要提交到一个网址上后面参数是不定的,由后台产生
怎么用java模拟浏览器提交html页面的表单数据
HttpClient模拟请求如下HttpClient httpclient = new DefaultHttpClient(); //打开浏览器
HttpPost httpPost = new HttpPost("www.xxx.xxx"); //输入网址
List <NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("userName","123"));
nvps.add(new BasicNameValuePair("password","123")); //封装表单
httpPost.setEntity(new UrlEncodedFormEntity(nvps,"utf-8")); //将参数传入post方法中
HttpResponse response = httpclient.execute(httpPost); //执行post
HttpEntity entity = response.getEntity(); //获取响应数据
String result = EntityUtils.toString(entity); //将响应数据转成字符串
需要导入jar包
纯手工打字,请采纳哈
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
public class IPHelper
public String getSourceText(String ip) throws IOException
String text = null;
HttpClient client = new HttpClient();
client.getParams().setContentCharset("GBK");
PostMethod post = new PostMethod("http://www.ip138.com/ips8.asp");
NameValuePair[] data = new NameValuePair("action", "2"),
new NameValuePair("ip", ip) ;
post.setRequestBody(data);
client.executeMethod(post);
text = post.getResponseBodyAsString();
post.releaseConnection();
return text;
public static void main(String[] args) throws IOException
IPHelper h=new IPHelper();
System.out.println(h.getSourceText("192.169.0.1"));
这个是Post的,还有Get的,看你的form是怎么样的了。 参考技术B 使用组件httpclient,网上有下载。
以上是关于java 模拟浏览器提交表单后获取新url的主要内容,如果未能解决你的问题,请参考以下文章
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
js通过生成临时表单再删除的方式向后台提交数据(模拟ajax的post提交但还要跳转页面不返回数据)