使用Java发送GET、POST请求
2016-07-13 16:57
489 查看
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)");
conn.setDoOutput(true);// 发送POST请求必须设置如下两行
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());// 获取URLConnection对象对应的输出流s
out.print(param);// 发送请求参数
out.flush();// flush输出流的缓冲
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));// 定义BufferedReader输入流来读取URL的响应
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:8080/xtest/URLresponse.jsp", "msg=888");
// System.out.println(s);
// 发送POST请求
String s1 = TestGetPost.sendPost("http://localhost:8080/xtest/URLresponse.jsp", "user=李刚&pass=abc");
System.out.println(s1);
}
}
/**
* 向指定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)");
conn.setDoOutput(true);// 发送POST请求必须设置如下两行
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());// 获取URLConnection对象对应的输出流s
out.print(param);// 发送请求参数
out.flush();// flush输出流的缓冲
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));// 定义BufferedReader输入流来读取URL的响应
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:8080/xtest/URLresponse.jsp", "msg=888");
// System.out.println(s);
// 发送POST请求
String s1 = TestGetPost.sendPost("http://localhost:8080/xtest/URLresponse.jsp", "user=李刚&pass=abc");
System.out.println(s1);
}
}
相关文章推荐
- logback日志交给logstash处理
- Eclipse上Hadoop开发环境搭建
- springmvc+mybatis 配置
- 【Java】抽象类和接口
- 【Java】异常处理
- Java中关于Short,byte越界需要强转,int,long越界自动转为最小值。
- 一种基于annotation的Spring-mvc权限控制方法
- Spring学习笔记1——IOC: 尽量使用注解以及java代码
- Struts2的简单使用(二)页面向action传值
- jboss-5.1.0.GA-jdk6.zip与jboss-5.1.0.GA.zip有什么区别?以及下载地址!!!
- Java克隆调用super.clone()原理
- struts2一个实例中遇到的问题
- java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder 异常
- There is no getter for property "name" in java.lang.String
- 热门框架RxJava + Retrofit的整合
- JAVA自学之每日一题(十)
- java实现愤怒的小鸟游戏之Java swing图形界面开发游戏项目愤怒的小鸟源码及实现方式详解
- Spring中的jar包简介
- Java对象克隆(Clone)及Cloneable接口
- java面向对象基础