用JAVA实现post请求

507阅读 0评论2008-11-17 hkebao
分类:Java

大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数 就可以了,但是可不可以向网页中发送POST请求呢,注册程序就是我们在点击提交按钮后往指定页面发送POST请求以便送往数据库

本例就来做个演示,往一个完美私服的数据库里不断发送注册请求
  1. import java.net.*;  
  2. import java.io.*;  
  3. import java.util.Locale;  
  4. class Test   
  5. {  
  6.     public static void main(String[] args)   
  7.     {  
  8.         try  
  9.         {  
  10.             //用于注册的用户名 密码 问题 答案临时变量  
  11.             String temp="renyanwei";  
  12.   
  13.             //就注册10个吧,别太过火了  
  14.             for (int i=1;i<10;i++)  
  15.             {  
  16.                 String urlstr="";  
  17.                 URL url=new URL(urlstr);  
  18.                 URLConnection conn=url.openConnection();  
  19.   
  20.                 //这里是关键,表示我们要向链接里输出内容  
  21.                 conn.setDoOutput(true);  
  22.   
  23.                 //获得连接输出流  
  24.                 OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());  
  25.   
  26.                 //这里是我定义了一组账号信息,字段+数据  
  27.                 String str=String.format(Locale.CHINA,"login=%s&&passwd=%s&&repasswd=%s&&Prompt=%s&&answer=%s&&email=%s",  
  28.                     temp+i,temp+i,temp+i,temp+i,temp+i,"ren@ren.com");  
  29.                 //把数据写入  
  30.                 out.write(str);  
  31.                 out.flush();  
  32.                 out.close();  
  33.   
  34.                 //到这里已经完成了,不过我们还是看看返回信息吧,他的注册返回信息也在此页面  
  35.                 BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));  
  36.                 String line=null;  
  37.                 int lineNum=1;  
  38.                 while((line=reader.readLine())!=null)  
  39.                 {  
  40.                     ++lineNum;  
  41.   
  42.                     //为什么只输出174行呢,因为这一行才是返回信息嘛,要其他的没用  
  43.                     if(lineNum==174)  
  44.                         System.out.println(line);  
  45.                 }  
  46.             }  
  47.   
  48.         }  
  49.         catch (Exception x)  
  50.         {  
  51.             System.out.println(x.toString());  
  52.         }  
  53.           
  54.     }  
  55.   
  56. }  

上一篇:ajax跨域问题总结
下一篇:17号学习笔记二