因为某些原因,需要模拟Http post,向服务器进行提交数据。自己琢磨了很多种方法,什么ajax模拟,什么注入啊,想想都太高级了,自己也不太懂,于是想了想,咱也是java程序员,还是找个java的,这样应用起来也是得心应手了。于是施展了baidu和google大法,直接找到了一个开箱即用的模拟方法。我进行了简单的修改。具体代码如下:
1 public class HttpPostSimulator { 2 public static void post() throws IOException { 3 4 URL url = new URL("http://a.b.com/dda/updateCCC.action"); 5 URLConnection connection = url.openConnection(); 6 connection.setDoOutput(true); 7 OutputStreamWriter out = new OutputStreamWriter( 8 connection.getOutputStream(), "utf-8"); 9 10 // post的数据 11 out.write("s.code=de0947&s.typeCode=ccc"); 12 // 向页面传递数据。post的关键所在! 13 out.flush(); 14 out.close(); 15 16 // 一旦发送成功,用以下方法就可以得到服务器的回应: 17 String sCurrentLine; 18 String sTotalString; 19 sCurrentLine = ""; 20 sTotalString = ""; 21 // 传说中的三层包装阿! 22 BufferedReader resultReader = new BufferedReader(new InputStreamReader( 23 connection.getInputStream())); 24 while ((sCurrentLine = resultReader.readLine()) != null) { 25 sTotalString += sCurrentLine + "\r\n"; 26 27 } 28 System.out.println(sTotalString); 29 30 } 31 32 public static void main(String[] args) throws IOException { 33 post(); 34 } 35 }
参考的地址: