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;
                }
            }
    
  • 相关阅读:
    CSS中z-index的层级树概念
    随记
    PHP 随笔
    linux 相关
    Nginx 虚拟主机 VirtualHost 配置
    PHP 杂记
    Composer 资料
    PHP Yii架构学习
    java 日志技术汇总(log4j , Commons-logging,.....)
    Java 随笔
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12730301.html
Copyright © 2011-2022 走看看