1. 程式人生 > >定時重新整理獲取八爪魚token(獲取微信token也是一樣的道理)

定時重新整理獲取八爪魚token(獲取微信token也是一樣的道理)

package com.bazhuayu.utils;


import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;


import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;


public class TokenUtil {
  private static String token;


  public static String httpToken() {
    String urlstring = " http://dataapi.bazhuayu.com/token";
    /* JSONObject json = null; */
    try {
      // 獲取當前客戶端物件
      HttpClient httpClient = new DefaultHttpClient();
      // 根據地址獲取請求
      HttpPost request = new HttpPost(urlstring);
      // 建立一個NameValuePair陣列,用於儲存欲傳送的引數
      List<NameValuePair> params = new ArrayList<NameValuePair>();
      // 新增引數
      params.add(new BasicNameValuePair("username", "username"));
      params.add(new BasicNameValuePair("password", "password"));
      params.add(new BasicNameValuePair("grant_type", "password"));
      // 設定編碼
      request.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
      // 通過請求物件獲取響應物件
      HttpResponse response = httpClient.execute(request);
      HttpEntity entity = response.getEntity();
      // 判斷網路連線狀態碼是否正常(0--200都是正常)
      if (response.getStatusLine().getStatusCode() == 200) {
        token = EntityUtils.toString(entity, "utf-8");
        /* JSONObject.parseObject(result); */
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return token;
  }


  static {
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
      @Override
      public void run() {
        token = httpToken();
      }
    }, 0, 86399000);
  }


  public static String getToken() {
    return token;
  }
}