获取AccessToken的方法
public static Access_token GetAccessToken()
{
string formatString = String.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", AppId, AppSecret); Access_token res = new Access_token();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(formatString);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
if (retString.IndexOf("") > )
{
Access_token token = new Access_token();
token = JsonHelper.ParseFromJson<Access_token>(retString);
res.access_token = token.access_token;
res.expires_in = token.expires_in;
}
return res;
}
Access_token类结构
public class Access_token
{
public Access_token()
{
//
//TODO:用于验证Access_token是否过期实体
//
}
string _access_token;
string _expires_in; /// <summary>
/// 获取到的凭证
/// </summary>
public string access_token
{
get { return _access_token; }
set { _access_token = value; }
} /// <summary>
/// 凭证有效时间,单位:秒
/// </summary>
public string expires_in
{
get { return _expires_in; }
set { _expires_in = value; }
}
}
JsonHelper.ParseFromJson方法
/// <summary>
/// 将JSON对象转换为Model
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="szJson"></param>
/// <returns></returns>
public static T ParseFromJson<T>(string szJson)
{
T obj = Activator.CreateInstance<T>();
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(ms);
}
}