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

时间:2023-03-08 22:42:57

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

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

  1. private string GetToken()
  2. {
  3. // 也可以这样写:
  4. //return  GetPage("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的appid&secret=你的secret", "");
  5. string res = "";
  6. HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential
  7. &appid=你的appid&secret=你的secret");
  8. req.Method = "GET";
  9. using (WebResponse wr = req.GetResponse())
  10. {
  11. HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();
  12. StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
  13. string content = reader.ReadToEnd();
  14. List<ACCESSTOKEN> myACCESSTOKEN = Json.JSONStringToList<ACCESSTOKEN>(content);
  15. res = myACCESSTOKEN[0].access_token;
  16. }
  17. return res;
  18. }
  19. public string GetPage(string posturl, string postData)
  20. {
  21. Stream outstream = null;
  22. Stream instream = null;
  23. StreamReader sr = null;
  24. HttpWebResponse response = null;
  25. HttpWebRequest request = null;
  26. Encoding encoding = Encoding.UTF8;
  27. byte[] data = encoding.GetBytes(postData);
  28. // 准备请求...
  29. try
  30. {
  31. // 设置参数
  32. request = WebRequest.Create(posturl) as HttpWebRequest;
  33. CookieContainer cookieContainer = new CookieContainer();
  34. request.CookieContainer = cookieContainer;
  35. request.AllowAutoRedirect = true;
  36. request.Method = "POST";
  37. request.ContentType = "application/x-www-form-urlencoded";
  38. request.ContentLength = data.Length;
  39. outstream = request.GetRequestStream();
  40. outstream.Write(data, 0, data.Length);
  41. outstream.Close();
  42. //发送请求并获取相应回应数据
  43. response = request.GetResponse() as HttpWebResponse;
  44. //直到request.GetResponse()程序才开始向目标网页发送Post请求
  45. instream = response.GetResponseStream();
  46. sr = new StreamReader(instream, encoding);
  47. //返回结果网页(html)代码
  48. string content = sr.ReadToEnd();
  49. string err = string.Empty;
  50. return content;
  51. }
  52. catch (Exception ex)
  53. {
  54. string err = ex.Message;
  55. Response.Write(err);
  56. return string.Empty;
  57. }
  58. }