• 【MVC__微信客服消息】发送微信客户消息 invalid openid hint 及 中文乱码


    在发送微信客服消息初始使用的是HttpWebRequest

    设置request.ContentType = "application/x-www-form-urlencoded";

    或者是request.ContentType = "application/json; encoding=utf-8";

    都报 invalid openid hint 错误

    后来发现 StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.ASCII);

    StreamWriter未使用Encoding.ASCII,改正后但是发送的消息还是中文乱码,这就很蛋疼了

            public static string PostWeiXin(string Url, string postDataStr)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                //request.ContentType = "application/json; encoding=utf-8";
                request.ContentType = "application/x-www-form-urlencoded";
                Stream myRequestStream = request.GetRequestStream();
                StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.ASCII);
                myStreamWriter.Write(postDataStr);
                myStreamWriter.Close();
    
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
                //response.Cookies = cookie.GetCookies(response.ResponseUri);
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
                string retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
    
                return retString;
            }
    

    鄙人才疏学浅,经过不断的肝,发现一个好用的类,使用WebClient完美解决 invalid openid hint 报错以及中文乱码问题

    所以说,还是少用HttpWebRequest

            public static string SendMsgWechat(string url, string content)
            {
                using (WebClient webClient = new WebClient())
                {
                    webClient.Encoding = Encoding.UTF8;
                    webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
                    string sResponse = webClient.UploadString(url, "POST", content);
                    return sResponse;
                }
            }
    
  • 相关阅读:
    Java类变量和成员变量初始化过程
    Linux命令学习笔记
    gitlab本地部署方法(ubuntu16.04+gitlab9.5.5)
    Hanoi塔
    求递归算法时间复杂度:递归树
    最大堆/最小堆
    Matlab中plot基本用法
    这是一篇叼炸天的博客
    c++ static理解
    经典排序算法+文件操作~c语言实现
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12730301.html
Copyright © 2020-2023  润新知