zoukankan      html  css  js  c++  java
  • 【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;
                }
            }
    
  • 相关阅读:
    Pytorch:常用工具模块
    Pytorch: torch.nn
    流行框架阶段·概览
    jquery/js实现一个网页同时调用多个倒计时(最新的)
    用js判断页面刷新或关闭的方法
    js中substr,substring,indexOf,lastIndexOf,split 的用法
    jsonp案例
    CSS布局奇技淫巧:各种居中
    IntelliJ Idea 常用快捷键列表
    jquery中attr和prop的区别
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12730301.html
Copyright © 2011-2022 走看看