java发送http跨域_跨域发送HTTP请求详解
packagecom.xy.aider;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.URL;importjava.net.URLConnection;importjava.util.List;importjava.util.Map;/*** 后台发送跨域的post和get请求
*@authorHeng Hui
**/
public classSendHttpRequestUtil {/*** 向指定URL发送GET方法的请求
*
*@paramurl
* 发送请求的URL
*@paramparam
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@returnURL 所代表远程资源的响应结果*/
public staticString sendGet(String url, String param) {
String result= "";
BufferedReader in= null;try{
String urlNameString= url + "?" +param;
URL realUrl= newURL(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)");//备用方案//conn.setRequestProperty("UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//建立实际的连接
connection.connect();//获取所有响应头字段
Map> map =connection.getHeaderFields();//遍历所有的响应头字段
for(String key : map.keySet()) {
System.out.println(key+ "--->" +map.get(key));
}//定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(newInputStreamReader(
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();
}
}returnresult;
}/*** 向指定 URL 发送POST方法的请求
*@paramurl 发送请求的 URL
*@paramparam 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
*@return所代表远程资源的响应结果*/
public staticString sendPost(String url, String param) {
PrintWriter out= null;
BufferedReader in= null;
String result= "";try{
URL realUrl= newURL(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)");//备用方案//conn.setRequestProperty("UserAgent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);//1.获取URLConnection对象对应的输出流
out = newPrintWriter(conn.getOutputStream());//2.中文有乱码的需要将PrintWriter改为如下//out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8")//发送请求参数
out.print(param);//flush输出流的缓冲
out.flush();//定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(newInputStreamReader(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();
}
}
System.out.println("post推送结果:"+result);returnresult;
}///数据类似这种写入
public voidtestDemo(){//发送 GET 请求
String s=SendHttpRequestUtil.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
System.out.println(s);//发送 POST 请求
String sr=SendHttpRequestUtil.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
System.out.println(sr);
}
}
java发送http跨域_跨域发送HTTP请求详解相关推荐
- server2003-多域间林之间信任配置方法详解(附图)
多域间林之间信任配置方法详解 -----冯刚 DATA:20091018 实验拓朴: 实验 环境描述: MICHAEL公司日常办使用的域是"michael.com.cn"(林1), ...
- java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解
在web应用中,同一时间有大量的客户端请求同时发送到服务器,例如抢购.秒杀等.这个时候如何避免将大量的请求同时发送到业务系统. 第一种方法:在容器中配置最大请求数,如果大于改请求数,则客户端阻塞.该方 ...
- java中北大学ppt总结+课后习题第二章(小宇特详解)
java中北大学ppt总结+课后习题第二章(小宇特详解) 基本数据类型 Java语言有8种基本数据类型. 逻辑类型:boolean.1字节 整数类型: 1字节整数类型:byte. 2字节整数类型:sh ...
- java获取request body_HttpServletRequest获取body内容(字符串/二进制)详解
首页 > Java Web > SpringMvc应用 > HttpServletRequest HttpServletRequest获取body内容(字符串/二进制)详解 获取HT ...
- java中String s=abc及String s=new String(abc)详解
java中String s="abc"及String s=new String("abc")详解 1. 栈(stack)与堆(heap)都是Java用来在R ...
- java一个方法排他调用_Java编程实现排他锁代码详解
一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...
- 蓝桥杯java B组历年省赛真题汇总及题目详解
蓝桥杯java B组历年省赛真题汇总及题目详解 2019年第十届蓝桥杯省赛真题详解 2018年第九届蓝桥杯省赛真题详解 2017年第八届蓝桥杯省赛真题详解 2016年第七届蓝桥杯省赛真题详解 2015 ...
- 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解
[JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...
- 2022年Java面试总结,200多页真题笔记和详解(核心考点、6家大厂)
为了进大厂,花了很多时间和精力在面试准备上,也刷了很多题.但题刷多了有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到,如果只是为面试而刷题是不是在浪费人生呢? 如果你想进大厂,或者去一个更大.更 ...
- iframe嵌套页面 跨域_跨域解决方案
点击上方蓝色"后端开发杂谈"关注我们, 专注于后端日常开发技术分享 上一篇文章跨域资源共享我们讲到了, 在跨域访问的时候出现的问题, 以及基于跨域共享的方案解决跨域的问题, 那么还 ...
最新文章
- 手机qq2008触屏版_比微信老却是00后最爱 手机QQ 16年进化史
- 设计模式学习笔记(二十二:备忘录模式)
- mysql的锁表问题
- Python编程语言学习:for循环实现对多个不同的DataFrame数据执行相同操作(可用于对分开的测试集、训练集实现执行相同逻辑任务)
- angular2、ng2 http get post 传参
- Python学习笔记之六:在VS中调用Python
- 快手基于 Flink 的持续优化与实践
- 2批量批量查询数据插入数据_你还在利用复制批量插入数据吗?一个oracle命令助你批量插入数据...
- golang 捕获堆栈信息_【网络数据安全】为什么时间戳对于数据包捕获很重要
- codeblocks快捷键(转载)
- 一个小码农对嵌入式的理解
- Could not create the view: An unexpected exception was thrown.
- 点赞时代,你为什么被人绝交?
- Selenium+Python自动化测试学习问题总结笔记
- python单例模式selenium driver实现单例
- JetBrains Rider 软件使用快速入门
- android依赖本地工程排除,Android Gradle依赖项排除(Android Gradle dependency exclude)
- 献给即将来临的母亲节父亲节!!
- 2021年广东工业大学第11届腾讯杯新生程序设计竞赛(同步赛)F osu
- 全月加权平均的计算(分仓核算,结果反填到单据)
热门文章
- 你需要知道的基础算法知识——STL和基础数据结构(四)
- dell笔记本外接显示器_使用笔记本电脑外接大屏幕液晶显示器的体验
- Iterator图解
- 关于神经网络的需要注意的概念总结
- EPC Class0 Gen1标签识别代码C++
- kickstart模式实现批量安装centos7.x系统
- Linux 内核修正 5 年历史的严重 bug
- maven项目多模块部署的时候构建顺序
- ISE MAP报错: Unsupported programming for BSCAN block and JTAG_CHAIN attribute value 1的解决方法...
- php中获得客户端,服务器ip