编辑器加载中

 楼主发表于:2006-03-28 20:03:54我写了个POST   跨网提交的东西 

可为什么   老出现     要写入到流中的字节超过指定的   Content-Length   字节大小 

代码入下 


public   static   string   PostData(string   url,string   indata,CookieContainer   myCookieContainer) 
{ 
string   outdata= " ";   
HttpWebRequest   myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url);   
myHttpWebRequest.ContentType= "application/x-www-form-urlencoded ";   
myHttpWebRequest.ContentLength=indata.Length;   
myHttpWebRequest.Method= "POST ";   
myHttpWebRequest.CookieContainer=myCookieContainer;   
Stream   myRequestStream=myHttpWebRequest.GetRequestStream();   
StreamWriter   myStreamWriter=new   StreamWriter(myRequestStream,Encoding.GetEncoding( "gb2312 "));     
myStreamWriter.Write(indata);   
myStreamWriter.Close();   
myRequestStream.Close();   
HttpWebResponse   myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();   
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);   
Stream   myResponseStream=myHttpWebResponse.GetResponseStream();   
StreamReader   myStreamReader=new   StreamReader(myResponseStream,Encoding.GetEncoding( "gb2312 "));   
outdata=myStreamReader.ReadToEnd();   
myStreamReader.Close();   
myResponseStream.Close(); 
return   outdata; 
} 

private   void   Button2_Click(object   sender,   System.EventArgs   e) 
{ 
CookieContainer   myCookieContainer=new   CookieContainer();   
        string   sss=PostData( "http://www.163888.net/login.asp ", "user= "+assaddas.Text+ "&u=on&pass= "+password.Text+ "&reto=/club/ ",myCookieContainer); 
sss=PostData( "http://www.163888.net/bbs/showmsg.asp ", "tusername=banzouku1&title=111ss&content=sssssssssss&action=发   送 ",myCookieContainer); 
        Response.Write(sss); 
} 
 
 
 
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:3  
 
zhangyunjian1
 
(赚钱吧) 

等 级: 

 #1楼 得分:0回复于:2006-03-28 20:04:59我这个是登陆后   发送短消息的!     
我一点就出现 

要写入到流中的字节超过指定的   Content-Length   字节大小 

请问如何解决????? 
 
 
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:【OpenFlashChart】免费的开源图表项目,图表效果超赞,支持.Net。 
 
Knight94
 
(愚翁) 

等 级: 
6
更多勋章 #2楼 得分:0回复于:2006-03-29 08:09:42你的 
myHttpWebRequest.ContentLength=indata.Length;   
不对,如果你的String   中有中文的话,会出现问题,你需要先把String转换成byte,然后计算长度,例如: 
using   System.Text; 

//   Get   string   length   in   UTF-8   encoding 
byte[]   bData   =   UnicodeEncoding.UTF8.GetBytes(   indata); 
myHttpWebRequest.ContentLength   =   bData.Length; 
 
 
 
对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:div+css和table布局的讨论,欢迎拍砖! 
 
Knight94
 
(愚翁) 

等 级: 
6
更多勋章 #3楼 得分:0回复于:2006-03-29 08:10:53or 

using   System.Text; 

//   Get   string   length   in   UTF-8   encoding 
myHttpWebRequest.ContentLength   =   UnicodeEncoding.UTF8.GetByteCount(   inData   );