POST提交特殊字符处理问题

时间:2022-04-13 22:24:44
做一个QQ空间的留言删除功能,删除代码如下

/// <summary>
        /// 删除留言
        /// </summary>
        /// <param name="gtk">gtk</param>
        /// <param name="mig">留言ID</param>
        /// <returns></returns>
        private bool Delete(int gtk, string mig)
        {
            Uri uri = new Uri("http://m.qzone.qq.com/cgi-bin/new/del_msgb?g_tk=" + gtk);
            byte[] by = Encoding.GetEncoding("utf-8").GetBytes(string.Format("qzreferrer=http://ctc.qzs.qq.com/qzone/msgboard/msgbcanvas.html#page=1&hostUin={0}&idList={1}&uinList={2}&format=fs&iNotice=1&inCharset=utf-8&outCharset=utf-8&ref=qzone&json=1&g_tk={3}", this.textBox_QQ.Text.Trim(), mig, this.textBox2.Text.Trim(), gtk));
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
            request.ContentType = "application/x-www-form-urlencoded";
            request.Host = "m.qzone.qq.com";
            request.ContentLength = by.Length;
            request.Referer = "http://ctc.qzs.qq.com/qzone/msgboard/msgbcanvas.html";
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36";
            request.Method = "post";
            request.CookieContainer = this.cookie;
            Stream s = request.GetRequestStream();
            s.Write(by, 0, by.Length);
            s.Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            this.cookie.Add(response.Cookies);
            Stream stream = response.GetResponseStream();
            StreamReader reader = new StreamReader(stream, Encoding.Default);
            string html = reader.ReadToEnd();
            reader.Close();
            stream.Close();
            request.Abort();
            response.Close();
            return true;
        }

qzreferrer=http://ctc.qzs.qq.com/qzone/msgboard/msgbcanvas.html#page=1该参数里面有#号,要怎么处理。求做过的大神支招。
分不多,大家研究一下可好,谢谢啦。

3 个解决方案

#1


要对参数值编码的,比如用utf8去encode,对方解码就可以了decode

#2


有木有大神过来给个解决方案啊

#3


引用 1 楼 bdmh 的回复:
要对参数值编码的,比如用utf8去encode,对方解码就可以了decode

这样System.Web.HttpUtility.UrlEncode(str,UTF8),还是报错,说参数错误

#1


要对参数值编码的,比如用utf8去encode,对方解码就可以了decode

#2


有木有大神过来给个解决方案啊

#3


引用 1 楼 bdmh 的回复:
要对参数值编码的,比如用utf8去encode,对方解码就可以了decode

这样System.Web.HttpUtility.UrlEncode(str,UTF8),还是报错,说参数错误