java模拟http的Get/Post请求,并设置ip与port代理
来源:互联网 发布:node 获取根目录 编辑:程序博客网 时间:2024/05/08 18:45
1、因为很多公司的内网都设有代理,浏览器通过ip与port上网,而java代码模拟http get方式同样需要外网代理;
2、Java实现http的Get/Post请求代码;
3、主要是设置HttpURLConnection请求头里面的属性
比如Cookie、User-Agent(浏览器类型)等等。
注:我就在网上找的一段Get/Post模拟请求代码,添加了下代理的配置,整合完成的。
package com.http;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;import java.util.Random;public abstract class HttpRequest {public static boolean proxyHost = false;public static boolean roxyPort = false;public int port = 80; public static void main(String[] args) { // 如果不设置,只要代理IP和代理端口正确,此项不设置也可以 System.getProperties().setProperty("http.proxyHost", "10.22.40.32"); System.getProperties().setProperty("http.proxyPort", "8080"); sendGet( "http://localhost:8080/book/admin/menu/getMenus.do", ""); } /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SCH-P709 Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SCH-P709 Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { e.printStackTrace(); } // 使用finally块来关闭输出流、输入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; }private String reandomIpAddress(){return new Random().nextInt(254)+"."+new Random().nextInt(254)+"."+new Random().nextInt(254)+"."+new Random().nextInt(254);}}
0 0
- java模拟http的Get/Post请求,并设置ip与port代理
- JAVA 动态替换代理IP并模拟POST请求
- Java实现Http的Post、Get、代理访问请求
- Java实现Http的Post、Get、代理访问请求
- JAVA实现http/https的Post、Get、代理访问请求
- Java利用Http 模拟POST、GET请求
- java模拟HTTP post,get请求
- Java模拟Http post、get请求
- Java模拟HTTP的Get和Post请求
- Java模拟HTTP的Get和Post请求
- Java模拟HTTP的Get和Post请求
- java模拟发送http的get、post请求
- java 模拟http的get和post请求
- java使用HttpClient模拟发送http的get、post请求
- 使用java模拟Get与Post请求
- JAVA 动态替换代理IP并模拟POST请求第二弹<转自ITeye>
- java http get post 各种请求,模拟浏览器请求
- Http POST与GET请求JAVA实现
- 多线程访问同一变量是否需要加锁
- run as server和run as run java application
- SElinux 学习笔记--例子实现
- Objective-C之深拷贝与浅拷贝
- 我的NO.旺
- java模拟http的Get/Post请求,并设置ip与port代理
- Vim配置进阶
- UISwitch / UIStepper
- png压缩神器--tinypng
- 递归求两个数的最大公约数
- [C++基础]goto的用法
- HDOJ 2501 Tiling_easy version(递推)
- python 计算文件函数
- PLSQL 经常自动断开失去连接的解决过程