微信小程序获取二维码API

<%@ WebHandler Language="C#" Class="ce" %>

using System;
using System.Web;
using System.Net;
using System.Text;
using System.IO;
using System.Collections.Generic;
using LitJson;
using System.Web.Script.Serialization;

public class ce : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        //微信access_tocke
        string ulr = "https://api.weixin.qq.com/wxa/getwxacode?access_token=" + this.access_token();

        HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(ulr);  //创建url
        request.Method = "POST";
        request.ContentType = "application/json;charset=UTF-8";
        JsonData data = new JsonData();
        data["path"] = "'pages/index?query=1";
        data["width"] = "430";

        string json = data.ToJson();
        byte[] load = Encoding.UTF8.GetBytes(json);
        request.ContentLength = load.Length;
        Stream writer = request.GetRequestStream();
        writer.Write(load,0,load.Length);


        HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
        Stream s = response.GetResponseStream();
        byte[] mg = StreamToBytes(s);
        context.Response.BinaryWrite(mg);

    }

    public string access_token() {
        string urls = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=1111&secret=1111";
        HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(urls);  //请求api
        HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
        string respText = "";
        using (Stream resStream = response.GetResponseStream())
        {
            StreamReader reader = new StreamReader(resStream, Encoding.Default);
            respText = reader.ReadToEnd();
            resStream.Close();
        }
        JavaScriptSerializer Jss = new JavaScriptSerializer();
        Dictionary<string, object> respDic = (Dictionary<string, object>)Jss.DeserializeObject(respText);
        //通过键access_token获取值
        return respDic["access_token"].ToString();



    }

    public static byte[] StreamToBytes(Stream stream)
    {

        List<byte> bytes = new List<byte>();
        int temp = stream.ReadByte();
        while (temp != -1)
        {
            bytes.Add((byte)temp);
            temp = stream.ReadByte();
        }
        return bytes.ToArray();

    }



    public bool IsReusable {
        get {
            return false;
        }
    }

}

  

posted @ 2017-11-30 15:32  尘梦  阅读(3964)  评论(0编辑  收藏  举报