收藏
回答

生成的小程序二维码图片无法打开?

最近发现通过小程序接口返回的二维码保存后,却无法打开。

前段时间还可以的,不知道是微信改了什么吗?

请帮忙看看。

下面是代码


public void CreateQrCode()
{
    var service = new CommonService();
    var token = service.GetAccessToken();
    var url = $"https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token={token}";
    var qrcodeContent = Guid.NewGuid().ToString();
    var body = $"{{\"path\":\"pages/xxx?q='{qrcodeContent}'\"}}";
 
    var results = HttpPost(url, body);
 
    ToImage(results);
}
 
public Stream HttpPost(string url, string body)
{
    Encoding encoding = Encoding.UTF8;
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.Method = "POST";
    //request.ContentType = "application/json; charset=utf-8";
 
    byte[] buffer = encoding.GetBytes(body);
    request.ContentLength = buffer.Length;
    var witer = request.GetRequestStream();
    witer.Write(buffer, 0, buffer.Length);
    witer.Close();
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 
    return response.GetResponseStream();
}
 
private static void ToImage(Stream fileSteam)
{
    var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
        "test2.jpg");
 
    byte[] bytes;
    using (MemoryStream ms = new MemoryStream())
    {
        fileSteam.CopyTo(ms);
        bytes = ms.ToArray();
    }
    using (var fs = File.OpenWrite(path))
    {
        fs.Write(bytes, 0, bytes.Length);
    }
 
    Process.Start(path);
}



最后一次编辑于  2019-12-12
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员-灵芝
    社区技术运营专员-灵芝
    2019-12-12

    请具体描述问题,具体是什么表现?报什么错?

    2019-12-12
    赞同
    回复 2
    • zoro_杨
      zoro_杨
      2019-12-12
      上面的代码没有任何错误,单纯保存图片后,图片大小为0,且图片打开后提示"It olooks like we don‘t support this file format。"  然后通过回复这里的评论上传保存后的图片,也提示格式不支持。
      然后如果把Stream转成Image对象时,会报参数不正确的错误,说明是图片的内容不正确,导致转换失败。
      2019-12-12
      回复
    • 社区技术运营专员-灵芝
      社区技术运营专员-灵芝
      2019-12-13回复zoro_杨
      意思是有返回图片信息的?
      2019-12-13
      回复
登录 后发表内容
问题标签