小程序獲取openid 出現null,{"errcode":40163,"errmsg":"code been used, hints: [ r...

//根據微信提供的接口,請求獲得openid和session_id
public class UserInfoUtils {
 
  public String getKey(String appid, String secret, String code) {
    getKeyURL=String.format(getKeyURL,appid,secret,code);
    String respone = MyHttpsUtil.httpsRequest(getKeyURL, "GET", null);
    return respone;
  }
}
 
相同code,在請求微信接口時,只能請求一次,再次請求就會返回openid爲null的錯誤:{"errcode":40163,"errmsg":"code been used, hints: [ req_id: WNUzlA0105th41 ]"}
 
測試時在微信開發工具上清除緩存後,從新請求就能夠了。
 
 
可是測試時還有一個問題:
public class UserInfoUtils {
 
  public  static String getKey(String appid, String secret, String code) {
  getKeyURL=String.format(getKeyURL,appid,secret,code);
  String respone = MyHttpsUtil.httpsRequest(getKeyURL, "GET", null);
  return respone;
  }
}
 
就是我在URL和方法上都加了static關鍵字,調用靜態方法時,就算清除了緩存,code也不同了,但仍是會報錯:{"errcode":40163,"errmsg":"code been used, hints: [ req_id: WNUzlA0105th41 ]"}。
 
解決方法:將static關鍵字去掉就ok了,由於靜態變量會保存getKeyURL,以後調用方法得到的值是上次轉換後的值,%s被轉換成具體的值,以後調用format方法就不能給URL賦值了。
相關文章
相關標籤/搜索