java 模拟浏览器提交表单后获取新url

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 模拟浏览器提交表单后获取新url相关的知识,希望对你有一定的参考价值。

模拟浏览器后,它的html语言中填写表单的表单提交到“action=search.php”,我怎么写?也写search.php?
然后实现跳转,怎么知道新的页面的地址呢??

第一步模拟浏览器后获取html代码
第二部解析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包
纯手工打字,请采纳哈


参考技术A httpclient就行了,给你个取IP的例子好了

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提交但还要跳转页面不返回数据)

PHP 如何带上cookies模拟GET表单提交

delphi提交表单

java模拟登陆时,post提交,对方网页提交时是鼠标onclick触发数据交流的,我该怎么弄?

JAVA--利用HttpClient模拟浏览器登陆请求获取响应的Cookie