微信公共服务平台开发(.Net 的实现)2-------获得ACCESSTOKEN

成为了开发者之后微信平台会给您appid和secret,在订阅号中是没有的,所以因该申请一下服务号

有了ACCESSTOKEN才能做添加菜单,上传/下载图片等功能

private string GetToken()
{

// 也可以这样写:
//return GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的appid&secret=你的secret", "");

string res = "";
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential
&appid=你的appid&secret=你的secret");
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();


StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);


string content = reader.ReadToEnd();

List<ACCESSTOKEN> myACCESSTOKEN = Json.JSONStringToList<ACCESSTOKEN>(content);
res = myACCESSTOKEN[0].access_token;

}


return res;
}
public string GetPage(string posturl, string postData)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
Encoding encoding = Encoding.UTF8;
byte[] data = encoding.GetBytes(postData);
// 准备请求...
try
{
// 设置参数
request = WebRequest.Create(posturl) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
//返回结果网页(html)代码
string content = sr.ReadToEnd();
string err = string.Empty;
return content;
}
catch (Exception ex)
{
string err = ex.Message;
Response.Write(err);
return string.Empty;
}
}