HttpWebRequest post数据[xgluxv]

使用这个函数 就在用 HttpWebRequest post数据的时候解决了 中文乱码和空格的问题 在工作中碰到的 ^o^
        private static string  HttpPost()
        
{
            
string postData="username=中文&userid=838 jdkkd";//在发送的内容里包括中文和空格
            string Web=@"http://www.myweb.com/myresponse.asp";//地址
            postData=postData.Replace(" ","%20");//替换空格
            
try
            
{
                
//获取URL并进行发送字串
                HttpWebRequest myHttpWebRequest =(HttpWebRequest)WebRequest.Create(Web);
                
                Stream myStream
=new MemoryStream ();//定义这个Stream是只是为了得到发送字串 经过编码之后得到的

byte的长度。
                StreamWriter myStreamWriter
=new StreamWriter(myStream,Encoding.Default);//用默认编码 得到

Stream                
                myStreamWriter.Write(postData);
                myStreamWriter.Flush();

                
long len=myStream.Length;//目的完成
                myStreamWriter.Close(); 
                
                myHttpWebRequest.ContentType
="application/x-www-form-urlencoded";
                myHttpWebRequest.ContentLength
=len;//如果字符串中存在中文 使用postData.Length得到长度和编码之

//后的长度是不一样的:(
                myHttpWebRequest.Method="POST";

                Stream newStream
=myHttpWebRequest.GetRequestStream();
                myStreamWriter
=new StreamWriter(newStream,Encoding.Default);//编码使用Encoding.Default 换来换去编码方法 还是用它得到的中文不会出现乱码,特别是把request("")得到的值写入sql数据库的时候 真是奇怪^O^

                myStreamWriter.Write(postData);
                myStreamWriter.Close();

                
//获取本次的回馈,先创建接收回馈的类HTTPWEBRESPONSE
                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                
//创建接收回馈的字节流类
                Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流 做爬虫的基础???
                Encoding encode 
= System.Text.Encoding.Default;
                StreamReader readStream 
= new StreamReader( receiveStream, encode );
                readStream.Close();
                
return "";
                            
            }

            
catch(Exception e)
            
{
                
return "";
            }
posted @ 2006-04-27 21:58  lu xu  阅读(1650)  评论(0编辑  收藏  举报