请选择 进入手机版 | 继续访问电脑版

万邦! 学习论坛

 找回密码
 立即注册
搜索
查看: 6418|回复: 0

java 定时任务调用servlet

[复制链接]
发表于 2018-6-11 10:19:57 | 显示全部楼层 |阅读模式
servlet调用必须发送请求
解决:定时任务调用java方法,然后通过该方法发送http请求
[html] view plain copy



  • package wzh.Http;  
  •   
  • import java.io.BufferedReader;  
  • import java.io.IOException;  
  • import java.io.InputStreamReader;  
  • import java.io.PrintWriter;  
  • import java.net.URL;  
  • import java.net.URLConnection;  
  • import java.util.List;  
  • import java.util.Map;  
  •   
  • public class HttpRequest {  
  •     /**  
  •      * 向指定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 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;  
  •     }      
  • }  


调用:

[html] view plain copy



  • public static void main(String[] args) {  
  •      //发送 GET 请求  
  •      String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");  
  •      System.out.println(s);  
  •       
  •      //发送 POST 请求  
  •      String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");  
  •      System.out.println(sr);  
  • }  
---------------------------------华丽的分界线-------------------------------
北京万邦易嵌科技有限公司(www.wanbangee.com)专业提供单片机、M3/M4linuxAndroidQT技术服务、技术培训。
详细咨询请加QQ:715493858




QQ|Archiver|手机版|小黑屋|万邦易嵌学习论坛. ( 京ICP备17017219号 )

GMT+8, 2020-4-2 04:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表