第一步:添加jar包
第二步:在spring配置文件中添加
<context:annotation-config/>
第三步:编写定时代码
我们通常做Java后台接口,是让前端访问的,让前端获取数据或者做增删改查,但是有时候,我们做的Java接口是让其他系统的Java后台调用的,让其他系统从我们这个系统获取数据或者做业务
public class HttpRequestUtil {
/** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String doPOST(String urlAddress, String params) { try { // 创建URL对象 URL url = new URL(urlAddress); // 打开连接 获取连接对象 URLConnection connection = url.openConnection(); // 设置请求编码 connection.addRequestProperty("encoding", "utf8"); // 设置允许输入 connection.setDoInput(true); // 设置允许输出 connection.setDoOutput(true); // 从连接对象中获取输出字节流对象 OutputStream outputStream = connection.getOutputStream(); // 将输出的字节流对象包装成字符流写出对象 OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream); // 创建一个输出缓冲区对象,将要输出的字符流写出对象传入 BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); // 向输出缓冲区中写入请求参数 if(params != null){ bufferedWriter.write(params); } // 刷新输出缓冲区 bufferedWriter.flush(); // 从连接对象中获取输入字节流对象 InputStream inputStream = connection.getInputStream(); // 将输入字节流对象包装成输入字符流对象,并将字符编码为GBK格式 InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf8"); // 创建一个输入缓冲区对象,将要输入的字符流对象传入 BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // 创建一个字符串对象,用来接收每次从输入缓冲区中读入的字符串 String line; // 创建一个可变字符串对象,用来装载缓冲区对象的最终数据,使用字符串追加的方式,将响应的所有数据都保存在该对象中 StringBuilder stringBuilder = new StringBuilder(); // 使用循环逐行读取缓冲区的数据,每次循环读入一行字符串数据赋值给line字符串变量,直到读取的行为空时标识内容读取结束循环 while ((line = bufferedReader.readLine()) != null) { // 将缓冲区读取到的数据追加到可变字符对象中 stringBuilder.append(line); } // 依次关闭打开的输入流 bufferedReader.close(); inputStreamReader.close(); inputStream.close(); // 依次关闭打开的输出流 bufferedWriter.close(); outputStreamWriter.close(); outputStream.close(); // 将可变字符串转换成String对象返回 return stringBuilder.toString(); } catch (IOException e) { e.printStackTrace(); } return null; } public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 /* for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); }*/ // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; }/**
* 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ 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 += 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; }}
}