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. JVM byte code

    http://blog.jamesdbloom.com/JVMInternals.html#constant_pool http://grepcode.com/file/repository.grep ...

  2. Unity3D研究院之获取摄像机的视口区域

    摄像机分为两种,一种是正交摄像机还有一种是透视摄像机.正交摄像机无论远近它的视口范围永远是固定的,但是透视摄像机是由原点向外扩散性发射,也就是距离越远它的视口区域也就越大.那么我们如何获取距离摄像机任 ...

  3. JSTL中的scope属性

    前两天接到老大一个任务:要验证一下<c:import>能否动态地引入不同的文件.当时很兴奋,要知道在对日外包里面,这个也得算技术活了.呵呵! 说干就干,写了两个jsp文件:m.jsp  t ...

  4. git秘钥配置--转

    git是分布式的代码管理工具,远程的代码管理是基于ssh的,所以要使用远程的git则需要ssh的配置.github的ssh配置如下:一 .设置git的user name和email:$ git con ...

  5. iOS 定位于地理反编码

    - (void)viewDidLoad { [self startLocation]; } //开始定位 -(void)startLocation{ self.locationManager = [[ ...

  6. JS操作iframe

    1. 获得iframe的window对象 存在跨域访问限制. chrome:iframeElement. contentWindow firefox: iframeElement.contentWin ...

  7. makefile自动生成依赖关系

    手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改.为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系.-M选项会把包含 ...

  8. java 线程的命名

    //线程的命名 class xc2 extends Thread{ public void run(){ for(int i=0;i<20;i++){ //Thread.currentThrea ...

  9. 使用 jQuery Mobile 与 HTML5 开发 Web App —— HTML5 离线缓存

    本文要介绍的,是 HTML5 离线网络应用程序的特性,离线网络应用程序在 W3C 中的实际名称是 "Offline Web applications" ,也称离线缓存.当用户打开浏 ...

  10. [Appium] 使用Appium过程中遇到的各种坑

    以下问题都是以ios为背景: 1. 问题: Case: 在页面S1上,点击元素A后,判读B元素是否出现. Detail:一开始通过Appium Inspector, 可以找到B元素,所以直接取该元素的 ...