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请求详解相关推荐

  1. server2003-多域间林之间信任配置方法详解(附图)

    多域间林之间信任配置方法详解 -----冯刚 DATA:20091018 实验拓朴: 实验 环境描述: MICHAEL公司日常办使用的域是"michael.com.cn"(林1), ...

  2. java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解

    在web应用中,同一时间有大量的客户端请求同时发送到服务器,例如抢购.秒杀等.这个时候如何避免将大量的请求同时发送到业务系统. 第一种方法:在容器中配置最大请求数,如果大于改请求数,则客户端阻塞.该方 ...

  3. java中北大学ppt总结+课后习题第二章(小宇特详解)

    java中北大学ppt总结+课后习题第二章(小宇特详解) 基本数据类型 Java语言有8种基本数据类型. 逻辑类型:boolean.1字节 整数类型: 1字节整数类型:byte. 2字节整数类型:sh ...

  4. java获取request body_HttpServletRequest获取body内容(字符串/二进制)详解

    首页 > Java Web > SpringMvc应用 > HttpServletRequest HttpServletRequest获取body内容(字符串/二进制)详解 获取HT ...

  5. java中String s=abc及String s=new String(abc)详解

    java中String s="abc"及String s=new String("abc")详解 1.   栈(stack)与堆(heap)都是Java用来在R ...

  6. java一个方法排他调用_Java编程实现排他锁代码详解

    一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...

  7. 蓝桥杯java B组历年省赛真题汇总及题目详解

    蓝桥杯java B组历年省赛真题汇总及题目详解 2019年第十届蓝桥杯省赛真题详解 2018年第九届蓝桥杯省赛真题详解 2017年第八届蓝桥杯省赛真题详解 2016年第七届蓝桥杯省赛真题详解 2015 ...

  8. 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解

    [JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...

  9. 2022年Java面试总结,200多页真题笔记和详解(核心考点、6家大厂)

    为了进大厂,花了很多时间和精力在面试准备上,也刷了很多题.但题刷多了有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到,如果只是为面试而刷题是不是在浪费人生呢? 如果你想进大厂,或者去一个更大.更 ...

  10. iframe嵌套页面 跨域_跨域解决方案

    点击上方蓝色"后端开发杂谈"关注我们, 专注于后端日常开发技术分享 上一篇文章跨域资源共享我们讲到了, 在跨域访问的时候出现的问题, 以及基于跨域共享的方案解决跨域的问题, 那么还 ...

最新文章

  1. 手机qq2008触屏版_比微信老却是00后最爱 手机QQ 16年进化史
  2. 设计模式学习笔记(二十二:备忘录模式)
  3. mysql的锁表问题
  4. Python编程语言学习:for循环实现对多个不同的DataFrame数据执行相同操作(可用于对分开的测试集、训练集实现执行相同逻辑任务)
  5. angular2、ng2 http get post 传参
  6. Python学习笔记之六:在VS中调用Python
  7. 快手基于 Flink 的持续优化与实践
  8. 2批量批量查询数据插入数据_你还在利用复制批量插入数据吗?一个oracle命令助你批量插入数据...
  9. golang 捕获堆栈信息_【网络数据安全】为什么时间戳对于数据包捕获很重要
  10. codeblocks快捷键(转载)
  11. 一个小码农对嵌入式的理解
  12. Could not create the view: An unexpected exception was thrown.
  13. 点赞时代,你为什么被人绝交?
  14. Selenium+Python自动化测试学习问题总结笔记
  15. python单例模式selenium driver实现单例
  16. JetBrains Rider 软件使用快速入门
  17. android依赖本地工程排除,Android Gradle依赖项排除(Android Gradle dependency exclude)
  18. 献给即将来临的母亲节父亲节!!
  19. 2021年广东工业大学第11届腾讯杯新生程序设计竞赛(同步赛)F osu
  20. 全月加权平均的计算(分仓核算,结果反填到单据)

热门文章

  1. 你需要知道的基础算法知识——STL和基础数据结构(四)
  2. dell笔记本外接显示器_使用笔记本电脑外接大屏幕液晶显示器的体验
  3. Iterator图解
  4. 关于神经网络的需要注意的概念总结
  5. EPC Class0 Gen1标签识别代码C++
  6. kickstart模式实现批量安装centos7.x系统
  7. Linux 内核修正 5 年历史的严重 bug
  8. maven项目多模块部署的时候构建顺序
  9. ISE MAP报错: Unsupported programming for BSCAN block and JTAG_CHAIN attribute value 1的解决方法...
  10. php中获得客户端,服务器ip