运用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相关文章
- java list去重_JAVA基础-List去重的6种方式[通俗易懂]
- java数组的声明_Java数组定义常用方法[通俗易懂]
- java locale 中国_Java描述语言、国家和地理的类——Locale
- java switch用法_Java switch语句
- md5 java 实现_MD5加密的Java实现
- java的栈内存和堆内存_Java本地方法栈
- Java邮箱自动发送邮件详解编程语言
- Java连接MySQL:实现数据互通(java如何连接mysql)
- 数据如何使用Java读取MySQL数据(java读取mysql)
- 自动提交MySQL事务中的Java自动提交实践(mysql事务java)
- 实现Redis中Java实现自动失效数据(redisjava过期)
- 清除Java实现Redis数据过期自动清理(redisjava过期)
- 更新使用Java实现Redis数据自动过期更新(redisjava过期)
- 数据清理基于Redis与Java实现自动过期数据清理(redisjava过期)
- 连接MySQL连接技术之Java实现(java的mysql)
- Linux Java时区调整:让处理日期更加方便(linux java时区)
- 数据Java操作MySQL库:获取你所需的数据(java获取mysql)
- 深入认识Java面试与MySQL及其思考(java面试mysql)
- Linux上善用Java:实现智能开发(linux 运行java)
- Java编程操作Oracle数据库(java读oracle)