1. public class TestGetPost {
  2. /**
  3. * 向指定URL发送GET方法的请求
  4. * @param url 发送请求的URL
  5. * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
  6. * @return URL所代表远程资源的响应
  7. */
  8. public static String sendGet(String url, String param) {
  9. String result = "";
  10. BufferedReader in = null;
  11. try {
  12. String urlName = url + "?" + param;
  13. URL realUrl = new URL(urlName);
  14. //打开和URL之间的连接
  15. URLConnection conn = realUrl.openConnection();
  16. //设置通用的请求属性
  17. conn.setRequestProperty("accept", "*/*");
  18. conn.setRequestProperty("connection", "Keep-Alive");
  19. conn.setRequestProperty("user-agent",
  20. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
  21. //建立实际的连接
  22. conn.connect();
  23. //获取所有响应头字段
  24. Map < String, List < String >> map = conn.getHeaderFields();
  25. //遍历所有的响应头字段
  26. for (String key: map.keySet()) {
  27. System.out.println(key + "--->" + map.get(key));
  28. }
  29. //定义BufferedReader输入流来读取URL的响应
  30. in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
  31. String line;
  32. while ((line = in .readLine()) != null) {
  33. result += "/n" + line;
  34. }
  35. } catch (Exception e) {
  36. System.out.println("发送GET请求出现异常!" + e);
  37. e.printStackTrace();
  38. }
  39. //使用finally块来关闭输入流
  40. finally {
  41. try {
  42. if ( in != null) { in .close();
  43. }
  44. } catch (IOException ex) {
  45. ex.printStackTrace();
  46. }
  47. }
  48. return result;
  49. }
  50. /**
  51. * 向指定URL发送POST方法的请求
  52. * @param url 发送请求的URL
  53. * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
  54. * @return URL所代表远程资源的响应
  55. */
  56. public static String sendPost(String url, String param) {
  57. PrintWriter out = null;
  58. BufferedReader in = null;
  59. String result = "";
  60. try {
  61. URL realUrl = new URL(url);
  62. //打开和URL之间的连接
  63. URLConnection conn = realUrl.openConnection();
  64. //设置通用的请求属性
  65. conn.setRequestProperty("accept", "*/*");
  66. conn.setRequestProperty("connection", "Keep-Alive");
  67. conn.setRequestProperty("user-agent",
  68. "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
  69. //发送POST请求必须设置如下两行
  70. conn.setDoOutput(true);
  71. conn.setDoInput(true);
  72. //获取URLConnection对象对应的输出流
  73. out = new PrintWriter(conn.getOutputStream());
  74. //发送请求参数
  75. out.print(param);
  76. //flush输出流的缓冲
  77. out.flush();
  78. //定义BufferedReader输入流来读取URL的响应
  79. in = new BufferedReader(
  80. new InputStreamReader(conn.getInputStream()));
  81. String line;
  82. while ((line = in .readLine()) != null) {
  83. result += "/n" + line;
  84. }
  85. } catch (Exception e) {
  86. System.out.println("发送POST请求出现异常!" + e);
  87. e.printStackTrace();
  88. }
  89. //使用finally块来关闭输出流、输入流
  90. finally {
  91. try {
  92. if (out != null) {
  93. out.close();
  94. }
  95. if ( in != null) { in .close();
  96. }
  97. } catch (IOException ex) {
  98. ex.printStackTrace();
  99. }
  100. }
  101. return result;
  102. }
  103. //提供主方法,测试发送GET请求和POST请求
  104. public static void main(String args[]) {
  105. //发送GET请求
  106. String s = TestGetPost.sendGet("http://localhost:8888/abc/login.jsp", null);
  107. System.out.println(s);
  108. //发送POST请求
  109. String s1 = TestGetPost.sendPost(http: //localhost:8888/abc/a.jsp ,
  110. "user=李刚&pass=abc");
  111. System.out.println(s1);
  112. }
  113. }

JAVA通过HTTP访问:Post+Get方式(转)的更多相关文章

  1. Java对象的访问方式

    之前写过一篇随笔 https://www.cnblogs.com/qianjinyan/p/10352749.html 现在看看,貌似不是很准确,方法区和栈应当区分开来,两者有很大的区别 看下面的一个 ...

  2. ajax跨域访问 java controller 和 cxf(webservice) 配置方式(CORS)

    1. controller跨域访问,配置方式 重点在这里: <mvc:cors> <mvc:mapping path="/*" allowed-origins=& ...

  3. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

  4. java开发webservice的几种方式(转载)

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...

  5. java开发webservice的几种方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...

  6. java解析xml的几种方式

    java解析xml的几种方式 DOM DOM的全称是Document ObjectModel,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称D ...

  7. Java对象的访问定位

    java对象在访问的时候,我们需要通过java虚拟机栈的reference类型的数据去操作具体的对象.由于reference类型在java虚拟机规范中只规定了一个对象的引用,并没有定义这个这个引用应该 ...

  8. java基础(八)-----深入解析java四种访问权限

    Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: 指的是本类 ...

  9. Java调用第三方http接口的方式

    1. 概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适.很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信.天气等). 在J ...

  10. Java 定时任务的几种实现方式

    JAVA实现定时任务的几种方式 @(JAVA)[spring|quartz|定时器]  近期项目开发中需要动态的添加定时任务,比如在某个活动结束时,自动生成获奖名单,导出excel等,此类任务由于活动 ...

随机推荐

  1. javac

    http://openjdk.java.net/groups/compiler/ http://crazyjavahacking.org/tag/javac/ http://openjdk.java. ...

  2. .NET垃圾回收:非托管资源,IDispose和析构函数的结合

    http://blog.jobbole.com/85436/ 原文出处: 田小计划   欢迎分享原创到伯乐头条 前面一篇文章介绍了垃圾回收的基本工作原理,垃圾回收器并不是可以管理内存中的所有资源.对于 ...

  3. python学习-day15:局部变量与全局变量、嵌套函数、递归

    一.全局变量与局部变量 在子程序中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序.当全局变量与局部变量同名时:在定义局部 ...

  4. 【MySQL】探究之TIMESTAMP

    背景 之前有业务反馈表中start_time,end_time时间字段随着时间的推移被自动更新,这可不是业务意愿,说的严重点是要出故障的. MySQL中有DATE,DATETIME,TIMESTAMP ...

  5. 使用springMVC实现文件上传和下载之文件下载

    接上一篇,文件下载需要获取下载文件的存储路径,这里只是手动填入,如果是在具体项目中,可以把文件名和上传后的存储路径保存在数据库中.然后增加一个文件列表的页面展示文件名和文件路径,然后点击下载的时候把相 ...

  6. Hadoop的管理目录

    HDFS文件结构 1.NameNode的文件结构,NameNode会创建VERSION.edits.fsimage.fstime文件目录.其中dfs.name.dir属性是一个目录列表,是每个目录的镜 ...

  7. requirejs笔记

    1.RequireJS是一个工具库,主要用于客户端的模块管理.它可以让客户端的代码分成一个个模块.实现异步或动态加载,从而提高代码的性能和可维护性.它的模块管理遵循AMD规范(Asynchronous ...

  8. UNIX网络编程-基本API介绍(二)

    参考链接:http://www.cnblogs.com/riky/archive/2006/11/24/570713.aspx 1.getsockname和getpeername getsocknam ...

  9. tracer

    http://people.canonical.com/~acelan/coscup-2010/Debugging%20Linux%20Kernel%20by%20Ftrace.pdf http:// ...

  10. Archlinux添加MP3播放器

    方法1: # pacman -S mplayer From: http://www.linuxdiyf.com/viewarticle.php?id=89207 用mplayer循环播放音乐:mpla ...