怎么用java模拟浏览器提交html页面的表单数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用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

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

第一步模拟浏览器后获取html代码
第二部解析action中跳转的位置
第三部进行二次跳转。

解析可以用正则表达式
参考技术A 你用java写浏览器渲染?追问

HTTPclient, 要提交到一个网址上后面参数是不定的,由后台产生

以上是关于怎么用java模拟浏览器提交html页面的表单数据的主要内容,如果未能解决你的问题,请参考以下文章

通过html页面的表单提交中文数据,Java后台出现乱码。跪求大神解答。

php curl 模拟post表单向提交数据

表单提交后,没有页面跳转

java中的form提交,页面输入中文在java中取得的却是乱码

java web 如何防止 用户绕过js验证,直接地址栏提交表单或自己编写html页面,提交数据到服务器?

html页面怎么利用JQuery获取别的页面中提交来的数据?