zl程序教程

您现在的位置是:首页 >  后端

当前栏目

运用Java进行Http表单数据自动提交详解编程语言

JAVA自动数据HTTP编程语言 详解 进行 提交
2023-06-13 09:20:29 时间
public FormPoster(URL url) { if(!url.getProtocol().toLowerCase().startsWith("http")) { System.err.println("Post只用于http协议!"); return; this.url=url; /** * 添加参数-值对 * @param name 参数名称 * @param value 参数值 public void add(String name,String value) { queryString.add(name, value); /** * 获取URL * @return URL public URL getURL() { return url; /** * 获取网站相应的输入流 * @return 输入流 * @throws Exception 无法连接异常 public InputStream post() throws Exception { URLConnection openConnection = url.openConnection(); openConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); openConnection.setDoOutput(true); OutputStream outputStream = openConnection.getOutputStream(); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream,"UTF-8"); outputStreamWriter.write(queryString.toString()); outputStreamWriter.write("/r/n"); outputStreamWriter.flush(); outputStreamWriter.close(); //刷新关闭流很重要,只有关闭了,才能获取输入流 return openConnection.getInputStream(); }

测试代码

package demo0808.demo2; 

 * 测试代码 

import java.io.File; 

import java.io.FileOutputStream; 

import java.io.InputStream; 

import java.io.InputStreamReader; 

import java.io.OutputStreamWriter; 

import java.net.URL; 

public class Test { 

 public static void main(String[] args) throws Exception { 

 URL url = new URL("https://uniportal.huawei.com/uniportal/login.do"); 

 FormPoster formPoster = new FormPoster(url); 

 /** 

 * 以下是测试华为招聘网站登陆界面 

 formPoster.add("actionFlag", "loginAuthenticate"); 

 formPoster.add("lang", "zh"); 

 formPoster.add("redirect", "http://career.huawei.com/recruitment/login_index.html?redirect=http://career.huawei.com/recruitment/"); 

 formPoster.add("uid", "用户名"); 

 formPoster.add("password", "密码`"); 

 InputStream inputStream = formPoster.post(); 

 InputStreamReader inputStreamReader = new InputStreamReader(inputStream); 

 File file=new File("outfile"); 

 FileOutputStream fileOutputStream = new FileOutputStream(file); 

 OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"UTF-8"); 

 int c; 

 while((c=inputStreamReader.read())!=-1) { 

 System.out.print((char)c); 

 outputStreamWriter.write((char)c); 

 inputStream.close(); 

 outputStreamWriter.close(); 

 System.out.println(); 

}

10571.html

cjavawindows