请教NameValueCollection的问题 应该是编码的问题,你要保证WebClient发送的编码与ASP的编码一致 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将web.config中的UTF-8全部改成GB2312试试 到底是什么编码呢?WebClient 发送的是什么编码呢?UTF8还是Default(GB2312),ASP是什么呢?应该是GB2312把,我用Encoding.Default.EncodingName的结果是GB2312,ASP发来的页面用Encoding.Default.GetString转换就能正确显示中文。Request.Form来得NameValueCollction我把编码转了又转,就是不行。 web.config里的UTF-8全改成GB2312了,还是不行,还是不认识中文字符! 你使用WebRequest试试:WebRequest req = WebRequest.Create( uri );//uri 要Post的地址string postStr;for( int i=0;i<mynamevaluecollection.Count;i++ ) postStr += "&"+mynamevaluecollection.GetKey(i)+"="+mynamevaluecollection[i];postStr.Remove(0,1); // 去掉第一个&byte[] postData = Encoding.Default.GetByte( postStr );req.Method = "POST";Stream postStream = req.GetRequestStream();postStream.Write(postData, 0, postData.Length);postStream.Close();req.GetResponse().Close(); 上面这段代码我试了一下,还是有些问题,我把这段代码稍微改了一下:HttpWebRequest req = (HttpWebRequest)WebRequest.Create( uri);//uri要Post的地址string postStr;postStr="";for( int i=0;i<mynamevaluecollection.Count;i++ ) postStr += "&"+mynamevalluecollection.GetKey(i)+"="+mynamecollection[i];postStr.Remove(0,1); // 去掉第一个&byte[] postData = Encoding.Default.GetBytes( postStr );req.Method = "POST";req.ContentLength=postData.Length+64;//一定要设置,否则不允许POSTStream postStream = req.GetRequestStream();postStream.Write(postData, 0, postData.Length);HttpWebResponse myResponse=(HttpWebResponse)req.GetResponse();//程序运行到这儿就停顿了,出现超时错误,我发觉,似乎没有任何内容被发送出去,自然也没有响应,就超时了。我看了半天,也不知道为什么不发送内容。不知道代码是否有什么错误?Stream receiveStream=myResponse.GetResponseStream();下面的代码省略了......另外我还发现,在ASp页面里提交表单到ASPX页面,用如下代码int len = Request.ContentLength;if (len>0){ mynamevaluecollection=Request.Form; foreach(string key in mynamevaluecollection) { Response.Write(key+"="+mynamevaluecollection[key]+"<BR>"); }}能够正常运行,但在ASPX页面立用webclient提交namevaluecollection就出现远程服务器500错误,也不知道错误什么实在是搞得头晕了! 刷新一次,就插入一次数据 怎么防止? 数据库插入新数据,怎么在已打开页面显示 Asp.net 一个iframe的简单问题 关于数据显示~ 求一个生成静态页面的实例 请教一个小问题 关于论坛贴子列表 请教:我的系统是win2003+iis 6.0,自从把内存加到1G后常感觉修改静态htm文件后并不能马上生效,通常要重启一下iis,请教解决办法。。 麻烦大家帮忙看看~~ 新手 看看 代码有没有所改进的地方 MSSQL导出导入工具 水晶报表能否实现像打印银行存折那样的功能? 有没有在datalist下分页的好方法? 运行ASP.NET出错
WebRequest req = WebRequest.Create( uri );//uri 要Post的地址string postStr;
for( int i=0;i<mynamevaluecollection.Count;i++ )
postStr += "&"+mynamevaluecollection.GetKey(i)+"="+mynamevaluecollection[i];postStr.Remove(0,1); // 去掉第一个&byte[] postData = Encoding.Default.GetByte( postStr );
req.Method = "POST";
Stream postStream = req.GetRequestStream();
postStream.Write(postData, 0, postData.Length);
postStream.Close();req.GetResponse().Close();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create( uri);//uri要Post的地址
string postStr;
postStr="";
for( int i=0;i<mynamevaluecollection.Count;i++ )
postStr += "&"+mynamevalluecollection.GetKey(i)+"="+mynamecollection[i];
postStr.Remove(0,1); // 去掉第一个&
byte[] postData = Encoding.Default.GetBytes( postStr );
req.Method = "POST";
req.ContentLength=postData.Length+64;//一定要设置,否则不允许POST
Stream postStream = req.GetRequestStream();
postStream.Write(postData, 0, postData.Length);
HttpWebResponse myResponse=(HttpWebResponse)req.GetResponse();//程序运行到这儿就停顿了,出现超时错误,我发觉,似乎没有任何内容被发送出去,自然也没有响应,就超时了。我看了半天,也不知道为什么不发送内容。不知道代码是否有什么错误?
Stream receiveStream=myResponse.GetResponseStream();
下面的代码省略了......另外我还发现,在ASp页面里提交表单到ASPX页面,用如下代码
int len = Request.ContentLength;
if (len>0)
{
mynamevaluecollection=Request.Form;
foreach(string key in mynamevaluecollection)
{
Response.Write(key+"="+mynamevaluecollection[key]+"<BR>");
}
}
能够正常运行,但在ASPX页面立用webclient提交namevaluecollection就出现远程服务器500错误,也不知道错误什么
实在是搞得头晕了!