隨筆-71  評論-5  文章-0  trackbacks-0
          import org.apache.commons.httpclient.HttpClient;
          import org.apache.commons.httpclient.NameValuePair;
          import org.apache.commons.httpclient.methods.PostMethod;

          import com.alibaba.fastjson.JSONObject;
          import com.huoniu.openapi.constant.Constant.TONGLIAN;


          public class TLInterfaceService {
              
              private static final String USERNAME = "";
              private static final String PASSWORD = "";
              private static final String TENANT = "";
              private static final String GRANT_TYPE_GET = "password";    
              private static final String GRANT_TYPE_REFRESH = "refresh_token";    
              
              private static String TOKEN = null;
              private static String REFRESH_TOKEN = null;
              private static long EXPIRES_IN ;
              private static long START_DATE;

              
              public  String getToken() {
                  if(TOKEN==null){
                          TOKEN  = login();
                  }else{
                      Date date = new Date();
                      if(START_DATE-date.getTime()<EXPIRES_IN-30){
                          TOKEN  = refresh();
                      }
                      
                  }
                  
                  return TOKEN;
              }
              
              
              public  void setToken(String token) {
                  TOKEN = token;
              }


              /**
               * 登陸,獲取token
               * 
          @return 
               
          */
                      
                  public static String login(){

                          HttpClient httpClient = new HttpClient();
                          String URL = String.format(TONGLIAN.PREV_PATH, "");  //接口地址
                          try {
                              PostMethod postMethod = new PostMethod(URL);
                              postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
                              NameValuePair[] data = { 
                                      new NameValuePair("username", USERNAME),
                                      new NameValuePair("password", PASSWORD),
                                      new NameValuePair("tenant",  TENANT),
                                      new NameValuePair("grant_type", GRANT_TYPE_GET)
                                       };
                              postMethod.setRequestBody(data);
                              int statusCode = httpClient.executeMethod(postMethod);
                              if(200 == statusCode){
                                  String body  = postMethod.getResponseBodyAsString();
                                  JSONObject json=JSONObject.parseObject(body);
                                  TOKEN = json.getString("access_token");
                                  REFRESH_TOKEN = json.getString("refresh_token");
                                  EXPIRES_IN = Long.parseLong(json.getString("expires_in"));
                                  START_DATE =  (new Date()).getTime();
                              }
                          } catch (Exception e) {
                              
                          }
                          return TOKEN;
                   }
                  
                  /**
                   * refresh_token
                   * 
          @return 
                   
          */
                                  
                  public static String refresh(){
                          
                      HttpClient httpClient = new HttpClient();
                          String URL = String.format(TONGLIAN.PREV_PATH, ""); //接口地址
                          try {
                              PostMethod postMethod = new PostMethod(URL);
                              postMethod.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
                              NameValuePair[] data = { 
                                      new NameValuePair("refresh_token", REFRESH_TOKEN),
                                      new NameValuePair("grant_type", GRANT_TYPE_REFRESH)
                               };
                              postMethod.setRequestBody(data);
                              int statusCode = httpClient.executeMethod(postMethod);
                              
                              if(200 == statusCode){
                                  String body  = postMethod.getResponseBodyAsString();
                                  JSONObject json=JSONObject.parseObject(body);
                                  TOKEN = json.getString("access_token");
                                  REFRESH_TOKEN = json.getString("refresh_token");
                                  EXPIRES_IN = Long.parseLong(json.getString("expires_in"));
                                  START_DATE =  (new Date()).getTime();
                              }
                          } catch (Exception e) {
                              
                          }
                          return TOKEN;
                   }

          }
          posted on 2015-08-31 09:54 藤本薔薇 閱讀(290) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 黄陵县| 青神县| 山阳县| 安国市| 申扎县| 察哈| 东港市| 巴彦县| 集安市| 隆尧县| 西乌珠穆沁旗| 新龙县| 饶平县| 南阳市| 方正县| 什邡市| 原阳县| 敖汉旗| 舒城县| 永嘉县| 修文县| 福建省| 宣汉县| 隆化县| 深圳市| 竹溪县| 嘉禾县| 施甸县| 新竹县| 四平市| 江油市| 新丰县| 万宁市| 什邡市| 公安县| 罗源县| 长治县| 疏勒县| 临夏市| 眉山市| 广丰县|