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. 如何在IIS 7.5中部署Asp.Net MVC 5的网站

    0 Sign in to vote 系统是 windwos 2008 已经安装.Net 4.0 和 .Net 4.5 已经安装MVC4 的需要文件,MVC5 找不见下载地方,求各位大哥告知一下在哪里可 ...

  2. 合并excel-MergeExcel

    MergeExcel 将需要合并的excel放入该目录下,包含xls和xlsx 点击运行按钮: 输入包含多少列: 等待运行,完毕! 基于python编写,源码和exe于 TTyb

  3. Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址?

    Spring mvc创建的web项目,如何获知其web的项目名称,访问具体的链接地址? 访问URL:  http://localhost:8090/firstapp/login 在eclipse集成的 ...

  4. yii2 使用composer安装

    composer global require "fxp/composer-asset-plugin:~1.0.0" composer create-project --prefe ...

  5. python---生成随机密码

    #简短地生成随机密码,包括大小写字母.数字,可以指定密码长度 from random import choice import string #python3中为string.ascii_letter ...

  6. Eclipse 配置Maven

    Eclipse 配置Maven 下载Maven 首先在官网下载Maven:http://maven.apache.org/download.cgi 下载后将其解压到相应的位置 配置Maven环境变量 ...

  7. loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法

    转载,原地址为:http://jianyu996.blog.163.com/blog/static/11211455520131226840879/ 请尊重原创: 1,无论XIB还是代码创建都会调用l ...

  8. 将框架的底层改掉,改成一个轻量级的ORM

    公司底层的缺点 1.功能有限,只有增删查改 2.不支持异步 3.不支持懒加载 4.不支持泛型 5.不支持Linq 6.性能没做到最好,比如FirsttOrDefault()只能通过查找select * ...

  9. Redis 新特性---pipeline(管道)

    转载自http://weipengfei.blog.51cto.com/1511707/1215042 Redis本身是一个cs模式的tcp server, client可以通过一个socket连续发 ...

  10. JS中数组Array的用法

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了. var arr = new Array();  // 初始化数组arr[0] = "aaa";arr[1] = ...