本文涉及3个基本点:

1、因为很多公司的内网都设有代理,浏览器通过ip与port上网,而java代码模拟http get方式同样需要外网代理;
2、Java实现http的Get/Post请求代码;
3、主要是设置HttpURLConnection请求头里面的属性
比如Cookie、User-Agent(浏览器类型)等等。
比如:http请求中添加Header
conn.setRequestProperty("Authorization", authorization);
注:我就在网上找的一段Get/Post模拟请求代码,添加了下代理的配置,整合完成的。
package com.pasier.quanzi.web.controller;
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;
public class HttpRequest {
public static void main(String[] args) {
// 如果不设置,只要代理IP和代理端口正确,此项不设置也可以
System.getProperties().setProperty("http.proxyHost", "10.22.40.32");
System.getProperties().setProperty("http.proxyPort", "8080");
// 判断代理是否设置成功
// 发送 GET 请求
System.out.println(sendGet(
"http://www.baidu.com",
"param1=xxx¶m2=yyy"));
// 发送 POST 请求
}
/**
* 向指定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/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
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) {
System.out.println("发送GET请求出现异常!" + 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/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送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) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}
}
以上这篇java模拟http的Get/Post请求,并设置ip与port代理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# get
# post请求
# Java使用GZIP压缩导致HTTP请求返回乱码问题解决
# java 伪造http请求ip地址的方法
# Java利用Request请求如何获取IP地址对应的省份、城市详解
# Java利用Request请求获取IP地址的方法详解
# Java如何获取真实请求IP
# 给大家
# 应该是
# 我就
# 遍历
# 希望能
# 这篇
# 此项
# 小编
# 大家多多
# 两行
# 内网
# 主要是
# 在网上
# io
# util
# Map
# public
# URLConnection
# List
# BufferedReader
相关文章:
制作网站的软件免费下载,免费制作app哪个平台好?
如何通过FTP服务器快速搭建网站?
网站app免费制作软件,能免费看各大网站视频的手机app?
定制建站哪家更专业可靠?推荐榜单揭晓
c# 服务器GC和工作站GC的区别和设置
建站之星后台管理系统如何操作?
如何通过WDCP绑定主域名及创建子域名站点?
如何自定义建站之星网站的导航菜单样式?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
清除minerd进程的简单方法
开封网站制作公司,网络用语开封是什么意思?
大同网页,大同瑞慈医院官网?
微课制作网站有哪些,微课网怎么进?
C++如何使用std::optional?(处理可选值)
高性能网站服务器配置指南:安全稳定与高效建站核心方案
建站之星安装后界面空白如何解决?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
行程制作网站有哪些,第三方机票电子行程单怎么开?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
如何选择适合PHP云建站的开源框架?
如何基于PHP生成高效IDC网络公司建站源码?
开源网站制作软件,开源网站什么意思?
建站之星如何快速解决建站难题?
如何访问已购建站主机并解决登录问题?
建站之星安装提示数据库无法连接如何解决?
如何快速搭建支持数据库操作的智能建站平台?
建站主机选虚拟主机还是云服务器更好?
Thinkphp 中 distinct 的用法解析
历史网站制作软件,华为如何找回被删除的网站?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
建站之星代理如何获取技术支持?
模具网站制作流程,如何找模具客户?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
如何通过cPanel快速搭建网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
建站之星北京办公室:智能建站系统与小程序生成方案解析
如何在云主机上快速搭建多站点网站?
大连 网站制作,大连天途有线官网?
广东企业建站网站优化与SEO营销核心策略指南
宝塔新建站点为何无法访问?如何排查?
建站之星如何实现PC+手机+微信网站五合一建站?
内网网站制作软件,内网的网站如何发布到外网?
如何在七牛云存储上搭建网站并设置自定义域名?
如何在云指建站中生成FTP站点?
如何使用Golang安装API文档生成工具_快速生成接口文档
建设网站制作价格,怎样建立自己的公司网站?
建站主机服务器选型指南与性能优化方案解析
IOS倒计时设置UIButton标题title的抖动问题
兔展官网 在线制作,怎样制作微信请帖?
建站主机选购指南与交易推荐:核心配置解析
*请认真填写需求信息,我们会在24小时内与您取得联系。