编辑器加载中
楼主发表于: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 );