我写了个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);
}

解决方案 »

  1.   

    我这个是登陆后 发送短消息的!  
    我一点就出现要写入到流中的字节超过指定的 Content-Length 字节大小请问如何解决?????
      

  2.   

    你的
    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;
      

  3.   

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