当前位置:编程学习 > C#/ASP.NET >>

C#post提交带有特殊符号的数据老是出错

static public string sjpost(string get,string cs,ref string sRtn)/*POST数据发送函数*/
        {
            
            WebResponse res = null;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(get);/*数据发送地址*/
            request.Method = "post";
            request.KeepAlive = true;
            request.UserAgent = "User-Agent    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)";//浏览器信息
            request.ContentType = "application/x-www-form-urlencoded";      
            //postdata= System.Web.HttpUtility.UrlEncode(cs, Encoding.GetEncoding("gb2312"));
            //byte[] postdata = Encoding.GetEncoding("gb2312").GetBytes(cs);
            //byte[] postdata = Encoding.GetEncoding("UTF-8").GetBytes(cs);
          byte[] postdata = Encoding.ASCII.GetBytes(cs);/*发送数据*/
            request.ContentLength = postdata.Length;
            Stream  postStream = request.GetRequestStream();
            postStream.Write(postdata, 0, postdata.Length);
            postStream.Close();
            res = request.GetResponse() as HttpWebResponse;
            Encoding encode = Encoding.GetEncoding("UTF-8");
            StreamReader stmR = new StreamReader(res.GetResponseStream(), encode);
            sRtn = stmR.ReadToEnd();
          
            return sRtn;    
        
        }

上面是我的代码,我提交类似id=user&password=password&code=code&site=asiabsi&page=default&lang=zh-cn&key=27676654330793&tea=776493&tzDiff=0&sv=B14  这类格式的数据的时候老是提示出错,无法实现网站登录,请高手指点下到底是为什么?? --------------------编程问答-------------------- 首先对cs做urlencode --------------------编程问答-------------------- 向您请教一下,这段时间北京找工作好找吗?是淡季还是旺季?我工作经验不到一年,想辞职。谢谢啊
引用 1 楼  的回复:
首先对cs做urlencode
--------------------编程问答-------------------- 我用
string postsj = string.Format("id={0}&password={1}&code={2}&site=asiabsi&page=default&lang=zh-cn&key={3}&tea={4}&tzDiff=0&sv=B14",user,pw,coed,code1,code2);
            System.Web.HttpUtility.UrlEncode(postsj);
试过,还是不成功 --------------------编程问答-------------------- UrlEncode用来转url的 还有个转文本内容的 叫什么code来着? --------------------编程问答-------------------- UrlEncode跟字符集相关的,你先确定是gb2312还是utf-8,然后用那个UrlEncode方法的重载。 --------------------编程问答-------------------- System.Web.HttpUtility.UrlEncode(postsj);
=>
postsj = System.Web.HttpUtility.UrlEncode(postsj);
--------------------编程问答-------------------- 还是不行改成postsj = System.Web.HttpUtility.UrlEncode(postsj);后直接连返回的数据都没有 --------------------编程问答-------------------- ring postsj = string.Format("id={0}&password={1}&code={2}&site=asiabsi&page=default&lang=zh-cn&key={3}&tea={4}&tzDiff=0&sv=B14",user,pw,coed,code1,code2);
  System.Web.HttpUtility.UrlEncode(postsj);
==============
不是对整个postsj encode 而是对具体参数encode
--------------------编程问答-------------------- 对哦。没看清,你怎么整体做编码了呢。 --------------------编程问答-------------------- 是对&编码?=不用吧? --------------------编程问答--------------------
引用 1 楼  的回复:
首先对cs做urlencode
--------------------编程问答-------------------- 修改以后还是一样,总是有些数据POST出去以后会丢失 --------------------编程问答-------------------- 乱码? --------------------编程问答-------------------- 不是乱码,是有部分数据POST出去以后服务器接收不到 --------------------编程问答-------------------- 很可能跟浏览器对url的解析能力有关。。 --------------------编程问答-------------------- 我想问下POST数据是不是不能直接POST出去 带&和=这些符号的数据,如果是应该怎么处理,最好能写个例子我看看,谢谢~~~~~· --------------------编程问答-------------------- 怎么没有人解释下呢? --------------------编程问答-------------------- 首先下载HttpAnalyzerStdV3查看要POST网站的数据包。然后再分析数据!
很多网站提交的数据都要System.Web.HttpUtility.UrlEncode(),只正对参数,并不是整体。
例如:
string userid="账号";
string URL_userid = System.Web.HttpUtility.UrlEncode(userid); --------------------编程问答-------------------- 那怎么获得COKIE并绑定呢?最好有例子学习下
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,