用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 后端教程 查看内容

小程序带参数二维码生成 c#后台代码

天下雪 2017-3-18 00:00

作者:w568273102,来自原文地址微信小程序获取小程序页面二维码API接口,通过后台post网址https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN,获取access_token方式,参数{"pat ...

作者:w568273102,来自原文地址 
微信小程序获取小程序页面二维码API接口,通过后台post网址https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN获取access_token方式,参数{"path": "pages/index/index?query=1", "width": 260},可以获得图片二进制流,直接打印二进制流为乱码

 
该二进制流直接保存成png图片,一下为本人所写的部分核心代码,需要引用using system.net 
/// url 网址 || param 参数

  1. public static string PostMoths(string url, string param)
  2. {
  3. string strURL = url;
  4. System.Net.HttpWebRequest request;
  5. request = (System.Net.HttpWebRequest)WebRequest.Create(strURL);
  6. request.Method = "POST";
  7. request.ContentType = "application/json;charset=UTF-8";
  8. string paraUrlCoded = param;
  9. byte[] payload;
  10. payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
  11. request.ContentLength = payload.Length;
  12. Stream writer = request.GetRequestStream();
  13. writer.Write(payload, 0, payload.Length);
  14. writer.Close();
  15. System.Net.HttpWebResponse response;
  16. response = (System.Net.HttpWebResponse)request.GetResponse();
  17. System.IO.Stream s;
  18. s = response.GetResponseStream();
  19. string StrDate = "";
  20. string strValue = "";
  21. byte[] tt = StreamToBytes(s);
  22. //将流保存在c盘test.png文件下
  23. System.IO.File.WriteAllBytes(@"c:\test.png", tt);
  24. }
  25. ///将数据流转为byte[]
  26. public static byte[] StreamToBytes(Stream stream)
  27. {
  28. List bytes = new List();
  29. int temp = stream.ReadByte();
  30. while (temp != -1)
  31. {
  32. bytes.Add((byte)temp);
  33. temp = stream.ReadByte();
  34. }
  35. return bytes.ToArray();
  36. }

生成的带参数二维码

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: w568273102 来自: 原文地址

相关阅读

  • jocce 2017-6-16 15:33
    为什么我这边试了不行呢
  • 天下雪 2017-4-13 19:27
    public static byte[] StreamToBytes(Stream stream)
            {
                //将基础流写入内存流
                MemoryStream memoryStream = new MemoryStream();
                const int bufferLength = 1024;
                int actual;
                byte[] buffer = new byte[bufferLength];
                while ((actual = stream.Read(buffer, 0, bufferLength)) > 0)
                {
                    memoryStream.Write(buffer, 0, actual);
                }
                memoryStream.Position = 0;


                byte[] bytes = new byte[memoryStream.Length];
                memoryStream.Read(bytes, 0, bytes.Length);
                // 设置当前流的位置为流的开始
                memoryStream.Seek(0, SeekOrigin.Begin);
                return bytes;
            }

    此方法有rom同学提供
  • 天下雪 2017-4-13 19:26
    补充说明:
    ///将数据流转为byte[]
    public static byte[] StreamToBytes(Stream stream)
    {
    List bytes = new List();
    int temp = stream.ReadByte();
    while (temp != -1)
    {
    bytes.Add((byte)temp);
    temp = stream.ReadByte();
    }
            return bytes.ToArray();
        }

    这个方法改成上楼的方法:
    这个方法,目前本地测试时需要,放到外网还没测试是否需要转内存流