package com.stylefeng.guns.modular.system.util;
|
import java.io.*;
|
import java.net.HttpURLConnection;
|
import java.net.MalformedURLException;
|
import java.net.URL;
|
|
public class HttpTool {
|
|
public static String doGet(String httpUrl) {
|
HttpURLConnection connection = null;
|
InputStream inputStream = null;
|
BufferedReader bufferedReader = null;
|
String result = null;// 返回结果字符串
|
try {
|
// 创建远程url连接对象
|
URL url = new URL(httpUrl);
|
// 通过远程url连接对象打开一个连接,强转成httpURLConnection类
|
connection = (HttpURLConnection) url.openConnection();
|
// 设置连接方式:get
|
connection.setRequestMethod("GET");
|
// 设置连接主机服务器的超时时间:15000毫秒
|
connection.setConnectTimeout(15000);
|
// 设置读取远程返回的数据时间:60000毫秒
|
connection.setReadTimeout(60000);
|
// 发送请求
|
connection.connect();
|
// 通过connection连接,获取输入流
|
if (connection.getResponseCode() == 200) {
|
inputStream = connection.getInputStream();
|
// 封装输入流is,并指定字符集
|
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
|
// 存放数据
|
StringBuffer stringBuffer = new StringBuffer();
|
String temp = null;
|
while ((temp = bufferedReader.readLine()) != null) {
|
stringBuffer.append(temp);
|
stringBuffer.append("\r\n");
|
}
|
result = stringBuffer.toString();
|
}
|
} catch (MalformedURLException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
// 关闭资源
|
if (bufferedReader!=null) {
|
try {
|
bufferedReader.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
if (inputStream!=null) {
|
try {
|
inputStream.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
connection.disconnect();// 关闭远程连接
|
}
|
return result;
|
}
|
|
public static String doPost(String httpUrl, String data) {
|
|
HttpURLConnection connection = null;
|
InputStream inputStream = null;
|
OutputStream outputStream = null;
|
BufferedReader bufferedReader = null;
|
String result = null;
|
try {
|
URL url = new URL(httpUrl);
|
// 通过远程url连接对象打开连接
|
connection = (HttpURLConnection) url.openConnection();
|
// 设置连接请求方式
|
connection.setRequestMethod("POST");
|
// 设置连接主机服务器超时时间:15000毫秒
|
connection.setConnectTimeout(15000);
|
// 设置读取主机服务器返回数据超时时间:60000毫秒
|
connection.setReadTimeout(60000);
|
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
|
connection.setDoOutput(true);
|
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
|
connection.setRequestProperty("Content-Type", "application/json");
|
// 通过连接对象获取一个输出流
|
outputStream = connection.getOutputStream();
|
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
|
outputStream.write(data.getBytes());
|
// 通过连接对象获取一个输入流,向远程读取
|
if (connection.getResponseCode() == 200) {
|
inputStream = connection.getInputStream();
|
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
|
bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
|
StringBuffer stringBuffer = new StringBuffer();
|
String temp = null;
|
// 循环遍历一行一行读取数据
|
while ((temp = bufferedReader.readLine()) != null) {
|
stringBuffer.append(temp);
|
stringBuffer.append("\r\n");
|
}
|
result = stringBuffer.toString();
|
}
|
} catch (MalformedURLException e) {
|
e.printStackTrace();
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
// 关闭资源
|
if (null != bufferedReader) {
|
try {
|
bufferedReader.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
if (null != outputStream) {
|
try {
|
outputStream.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
if (null != inputStream) {
|
try {
|
inputStream.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
// 断开与远程地址url的连接
|
connection.disconnect();
|
}
|
return result;
|
}
|
}
|