JAVA通过HTTP访问:Post+Get方式(转)
- public class TestGetPost {
- /**
- * 向指定URL发送GET方法的请求
- * @param url 发送请求的URL
- * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
- * @return URL所代表远程资源的响应
- */
- public static String sendGet(String url, String param) {
- String result = "";
- BufferedReader in = null;
- try {
- String urlName = url + "?" + param;
- URL realUrl = new URL(urlName);
- //打开和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.connect();
- //获取所有响应头字段
- Map < String, List < String >> map = conn.getHeaderFields();
- //遍历所有的响应头字段
- for (String key: map.keySet()) {
- System.out.println(key + "--->" + map.get(key));
- }
- //定义BufferedReader输入流来读取URL的响应
- in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
- String line;
- while ((line = in .readLine()) != null) {
- result += "/n" + line;
- }
- } catch (Exception e) {
- System.out.println("发送GET请求出现异常!" + e);
- e.printStackTrace();
- }
- //使用finally块来关闭输入流
- finally {
- try {
- if ( in != null) { in .close();
- }
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- return result;
- }
- /**
- * 向指定URL发送POST方法的请求
- * @param url 发送请求的URL
- * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
- * @return URL所代表远程资源的响应
- */
- public static String sendPost(String url, String param) {
- PrintWriter out = null;
- BufferedReader in = null;
- String result = "";
- try {
- URL realUrl = new URL(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)");
- //发送POST请求必须设置如下两行
- conn.setDoOutput(true);
- conn.setDoInput(true);
- //获取URLConnection对象对应的输出流
- out = new PrintWriter(conn.getOutputStream());
- //发送请求参数
- out.print(param);
- //flush输出流的缓冲
- out.flush();
- //定义BufferedReader输入流来读取URL的响应
- in = new BufferedReader(
- new InputStreamReader(conn.getInputStream()));
- String line;
- while ((line = in .readLine()) != null) {
- result += "/n" + 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();
- }
- }
- return result;
- }
- //提供主方法,测试发送GET请求和POST请求
- public static void main(String args[]) {
- //发送GET请求
- String s = TestGetPost.sendGet("http://localhost:8888/abc/login.jsp", null);
- System.out.println(s);
- //发送POST请求
- String s1 = TestGetPost.sendPost(http: //localhost:8888/abc/a.jsp ,
- "user=李刚&pass=abc");
- System.out.println(s1);
- }
- }
JAVA通过HTTP访问:Post+Get方式(转)的更多相关文章
- Java对象的访问方式
之前写过一篇随笔 https://www.cnblogs.com/qianjinyan/p/10352749.html 现在看看,貌似不是很准确,方法区和栈应当区分开来,两者有很大的区别 看下面的一个 ...
- ajax跨域访问 java controller 和 cxf(webservice) 配置方式(CORS)
1. controller跨域访问,配置方式 重点在这里: <mvc:cors> <mvc:mapping path="/*" allowed-origins=& ...
- JAVA解析XML的四种方式
java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...
- java开发webservice的几种方式(转载)
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...
- java开发webservice的几种方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- java解析xml的几种方式
java解析xml的几种方式 DOM DOM的全称是Document ObjectModel,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称D ...
- Java对象的访问定位
java对象在访问的时候,我们需要通过java虚拟机栈的reference类型的数据去操作具体的对象.由于reference类型在java虚拟机规范中只规定了一个对象的引用,并没有定义这个这个引用应该 ...
- java基础(八)-----深入解析java四种访问权限
Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: 指的是本类 ...
- Java调用第三方http接口的方式
1. 概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适.很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信.天气等). 在J ...
- Java 定时任务的几种实现方式
JAVA实现定时任务的几种方式 @(JAVA)[spring|quartz|定时器] 近期项目开发中需要动态的添加定时任务,比如在某个活动结束时,自动生成获奖名单,导出excel等,此类任务由于活动 ...
随机推荐
- Redis客户端之Spring整合Jedis,ShardedJedisPool集群配置
Jedis设计 Jedis作为推荐的java语言redis客户端,其抽象封装为三部分: 对象池设计:Pool,JedisPool,GenericObjectPool,BasePoolableObjec ...
- flash cs6导入某些mp3不能的解决办法
安装最新的quicktime 另外还有一个很恶心的办法,可以不用装quicktime. 1.用adobe audio打开一个没问题的mp3, 2.再打开有问题的MP3,全选,复制: 3.切换到没问题的 ...
- UIButton的使用
使用UIButton时需要注意的是: 1.UIButton的创建有专门的类方法(buttonWithType:,UILabel没有): 2.UIButton常用的属性包括:frame.titile.t ...
- load、init和initialize的区别
在NSObject.h中找到三个方法 + (void)load; + (void)initialize; - (instancetype)init 1. 可知三个方法类型,两个类方法,一个对象方法 2 ...
- Spring Boot 性能优化
spring 框架给企业软件开发者提供了常见问题的通用解决方案,包括那些在未来开发中没有意识到的问题.但是,它构建的 J2EE 项目变得越来越臃肿,逐渐被 Spring Boot 所替代.Spring ...
- python3爬虫 url管理器
import urllib.request #python3中将urllib2拆分为了urllib.request.urllib.error.urllib.response等 import http. ...
- nmap十条常用命令行格式
1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 - ...
- android Tab 类型切换界面
实现方案:viewpager + fragment + FragmentPagerAdapter 效果图: 可以左右滑动切换选项卡,或者点击: 如果想使用fragment的时候又想可以左右滑动,就可以 ...
- HTC ONE里面一个非常奇怪的问题。。。调用kSOAP出错
也是在某统计网站上看到了我们的APP爆出了这么一个bug: java.lang.NoSuchFieldError: No instance field headerOut of type [Lorg/ ...
- 自动化测试selenium+java 第二章
1.设置等待时间 Thread.sleep(2000); (1000代表1s) 2.断言assertion: 验证应用程序的状态是否同所期望的一致. 常见的断言包括:验证页面内容,如标题是否为X或当前 ...