1. 程式人生 > >自己專案的HttpGet請求另一個專案裡的方法

自己專案的HttpGet請求另一個專案裡的方法

 static public String SMSsend(String SignName, String TemplateCode,String  UserName,String Mobile,String  Content) throws Exception {
         
            String url = "";
            
String  content0= Content;url ="http://wechat.tagen-pm.com/property-wechat-service/sms/tagensmstest/"+SignName+"/"+TemplateCode+"/"+UserName+"/"+Mobile+"/"+content0+"";
            

            logger.warn(url+"代註冊簡訊傳送  mobileNo:" + Mobile + " msg: " + content0);
           /* String result = "";
            try {

                URL U = new URL(url);
                URLConnection connection = U.openConnection();
                connection.connect();
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
                in.close();
            } catch (Exception e) {
                throw e;
            }

            if (result.indexOf("1") != 0) {
                logger.error("系統異常,簡訊傳送失敗 " + Mobile);
            }
            return result;*/
            
            // 配置請求資訊(請求時間)
            RequestConfig rc = RequestConfig.custom().setSocketTimeout(5000)
                    .setConnectTimeout(5000).build();
            // 獲取使用DefaultHttpClient物件
            CloseableHttpClient httpclient = HttpClients.createDefault();
            // 返回結果
            String result = null;
            try {
                if (url != null) {
                    // 建立HttpGet物件,將URL通過構造方法傳入HttpGet物件
                    HttpGet httpget = new HttpGet(url);
                    // 將配置好請求資訊附加到http請求中
                    httpget.setConfig(rc);
                    // 執行DefaultHttpClient物件的execute方法傳送GET請求,通過CloseableHttpResponse介面的例項,可以獲取伺服器返回的資訊
                    CloseableHttpResponse response = httpclient.execute(httpget);
                    try {
                        // 得到返回物件
                        HttpEntity entity = response.getEntity();
                        if (entity != null) {
                            // 獲取返回結果
                            result = EntityUtils.toString(entity);
                        }
                    } finally {
                        // 關閉到客戶端的連線
                        response.close();
                    }
                }
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    // 關閉http請求
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return result;


        
        }

 

另一個專案裡的SendSmsController:

@RequestMapping("/sms")
@Controller
public class SendSmsController {
    @Autowired
    private SendMsgService sendMsgService;
    /**
     * 獲取登入使用者IP地址
     * 
    * @param request
    * @return
     */
    public static String getIpAddr(HttpServletRequest request) {
       String ip = request.getHeader("x-forwarded-for");
       if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
           ip = request.getHeader("Proxy-Client-IP");
   }
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
          ip = request.getHeader("WL-Proxy-Client-IP");
      }
       if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
           ip = request.getRemoteAddr();
      }
      if (ip.equals("0:0:0:0:0:0:0:1")) {
          ip = "本地";
     }
       return ip;
  }
    @RequestMapping(value="/sms/{SignName}/{TemplateCode}/{UserName}/{Mobile}/{Content}")
    public boolean SendSms(HttpServletRequest request,@PathVariable String SignName,@PathVariable String TemplateCode,@PathVariable String UserName,@PathVariable String Mobile,@PathVariable String Content){
          String  ip=    getIpAddr(request);
        Sms sms1 = new Sms();
        AliyunSms aliyunsms1=new AliyunSms();
        aliyunsms1.setName(SignName);
        aliyunsms1.setName(TemplateCode);
        aliyunsms1.setName(UserName);
        aliyunsms1.setNum(Mobile);
        aliyunsms1.setContent( Content);
        sendMsgService.addMessageCode(Mobile, "", Content, TemplateCode, ip);
        boolean k=sms1.AliyunSend(aliyunsms1);
        if(k){sendMsgService.updateCode(Mobile);}
        return k;
    }
    @RequestMapping(value="/tagensmstest/{SignName}/{TemplateCode}/{UserName}/{Mobile}/{Content}")
    public String SendSmstest(HttpServletRequest request,@PathVariable String SignName,@PathVariable String TemplateCode,@PathVariable String UserName,@PathVariable String Mobile,@PathVariable String Content){
          String  ip=    getIpAddr(request);
        Sms sms1 = new Sms();
        AliyunSms aliyunsms1=new AliyunSms();
        aliyunsms1.setName(SignName);
        aliyunsms1.setName(TemplateCode);
        aliyunsms1.setName(UserName);
        aliyunsms1.setNum(Mobile);
        aliyunsms1.setContent( Content);
        sendMsgService.addMessageCode(Mobile, "", Content, TemplateCode, ip);
        boolean k=sms1.AliyunSend(aliyunsms1);
        String result="";
        if(k){
            sendMsgService.updateCode(Mobile);
            result= "redirect:/sms/smssucess";
        }else{
            result= "redirect:/sms/smsfalse";
        }
        
        return result;
    }
    
    @RequestMapping(value="/smsfalse")
    public ModelAndView SendSmsfalse(HttpServletRequest request){
         Map<String, Object> smsfalse = new HashMap<String, Object>();
        return new ModelAndView("template/smsfalse", smsfalse);
    }
    
    @RequestMapping(value="/smssucess")
    public ModelAndView SendSmssucess(){
         Map<String, Object> smssucess = new HashMap<String, Object>();
        return new ModelAndView("template/smssucess", smssucess);
    }