调接口的方法

调接口的方法
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;
         }

}

你可能感兴趣的:(调接口的方法)