转载:
利用JAVA发送POST请求(垃圾注册就是这么产生的)
JavaQQPHP.net
大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数就可以了,但是可不可以向网页中发送POST请求呢,注册程序就是我们在点击提交按钮后往指定页面发送POST请求以便送往数据库
本例就来做个演示,往一个完美私服的数据库里不断发送注册请求
Java代码
import java.net.*;
import java.io.*;
import java.util.Locale;
class Test
{
public static void main(String[] args)
{
try
{
//用于注册的用户名 密码 问题 答案临时变量
String temp="renyanwei";
//就注册10个吧,别太过火了
for (int i=1;i<10;i++)
{
String urlstr="http://www.88wanmei.cn/register.php";
URL url=new URL(urlstr);
URLConnection conn=url.openConnection();
//这里是关键,表示我们要向链接里输出内容
conn.setDoOutput(true);
//获得连接输出流
OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());
//这里是我定义了一组账号信息,字段+数据
String str=String.format(Locale.CHINA,"login=%s&&passwd=%s&&repasswd=%s&&Prompt=%s&&answer=%s&&email=%s",
temp+i,temp+i,temp+i,temp+i,temp+i,"ren@ren.com");
//把数据写入
out.write(str);
out.flush();
out.close();
//到这里已经完成了,不过我们还是看看返回信息吧,他的注册返回信息也在此页面
BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line=null;
int lineNum=1;
while((line=reader.readLine())!=null)
{
++lineNum;
//为什么只输出174行呢,因为这一行才是返回信息嘛,要其他的没用
if(lineNum==174)
System.out.println(line);
}
}
}
catch (Exception x)
{
System.out.println(x.toString());
}
}
}
待研究!个人认为很好
利用JAVA发送POST请求(垃圾注册就是这么产生的)
JavaQQPHP.net
大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数就可以了,但是可不可以向网页中发送POST请求呢,注册程序就是我们在点击提交按钮后往指定页面发送POST请求以便送往数据库
本例就来做个演示,往一个完美私服的数据库里不断发送注册请求
Java代码
import java.net.*;
import java.io.*;
import java.util.Locale;
class Test
{
public static void main(String[] args)
{
try
{
//用于注册的用户名 密码 问题 答案临时变量
String temp="renyanwei";
//就注册10个吧,别太过火了
for (int i=1;i<10;i++)
{
String urlstr="http://www.88wanmei.cn/register.php";
URL url=new URL(urlstr);
URLConnection conn=url.openConnection();
//这里是关键,表示我们要向链接里输出内容
conn.setDoOutput(true);
//获得连接输出流
OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());
//这里是我定义了一组账号信息,字段+数据
String str=String.format(Locale.CHINA,"login=%s&&passwd=%s&&repasswd=%s&&Prompt=%s&&answer=%s&&email=%s",
temp+i,temp+i,temp+i,temp+i,temp+i,"ren@ren.com");
//把数据写入
out.write(str);
out.flush();
out.close();
//到这里已经完成了,不过我们还是看看返回信息吧,他的注册返回信息也在此页面
BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line=null;
int lineNum=1;
while((line=reader.readLine())!=null)
{
++lineNum;
//为什么只输出174行呢,因为这一行才是返回信息嘛,要其他的没用
if(lineNum==174)
System.out.println(line);
}
}
}
catch (Exception x)
{
System.out.println(x.toString());
}
}
}
待研究!个人认为很好