应该是编码的问题,你要保证WebClient发送的编码与ASP的编码一致

解决方案 »

  1.   

    将web.config中的UTF-8全部改成GB2312试试
      

  2.   

    到底是什么编码呢?WebClient 发送的是什么编码呢?UTF8还是Default(GB2312),ASP是什么呢?应该是GB2312把,我用Encoding.Default.EncodingName的结果是GB2312,ASP发来的页面用Encoding.Default.GetString转换就能正确显示中文。Request.Form来得NameValueCollction我把编码转了又转,就是不行。
      

  3.   

    web.config里的UTF-8全改成GB2312了,还是不行,还是不认识中文字符!
      

  4.   

    你使用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();
      

  5.   

    上面这段代码我试了一下,还是有些问题,我把这段代码稍微改了一下:
    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错误,也不知道错误什么
    实在是搞得头晕了!