我是想用这种方法向一个用jsp写的短信平台传递参数。我用的是如下方法
System.Uri uri = new System.Uri(str,true);
System.Net.WebRequest wrq= WebRequest.CreateDefault(uri);
WebResponse wrs=wrq.GetResponse();
但是每次传过去的内容都是乱码,那位老兄有处理办法?

解决方案 »

  1.   

    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      

  2.   

    发送和接受的时候,指定编码:发送:
    req.Method = "POST";byte[] postData = System.Text.Encoding.GetEncoding("gb2312").GetBytes( "?param1=aaa&param2=bbb" );//Post的数据req.ContentLength = postData.Length;
    Stream postStream = req.GetRequestStream();
    postStream.Write(postData, 0, postData.Length);
    postStream.Close();接收:
    WebResponse res = req.GetResponse();System.Text.Encoding resEncoding = System.Text.Encoding.GetEncoding("gb2312");//接收的编码
    StreamReader reader = new StreamReader( res.GetResponseStream(),resEncoding );

    string html = reader.ReadToEnd();  //接收的Htmlreader.Close();
    res.Close();
      

  3.   

    (timmy3310(tim) )   req是如何创建的,能给详细一些的信息吗?
      

  4.   

    string uri = "http://www.sina.com.cn";WebRequest req = WebRequest.Create( uri );
      

  5.   

    天,!·!!急死了!感觉(timmy3310(tim) ) 的方法可行,但还是没有成功。哪个有方法快说呀,
      

  6.   

    WebRequest req = WebRequest.Create("http://expert.csdn.net/Expert/topic/1581/1581934.xml");req.Method = "POST";byte[] postData = System.Text.Encoding.GetEncoding("gb2312").GetBytes( "?temp=.1063959" );//Post的数据req.ContentLength = postData.Length;
    Stream postStream = req.GetRequestStream();
    postStream.Write(postData, 0, postData.Length);
    postStream.Close();
    WebResponse res = req.GetResponse();System.Text.Encoding resEncoding = System.Text.Encoding.GetEncoding("gb2312");//接收的编码
    StreamReader reader = new StreamReader( res.GetResponseStream(),resEncoding );

    string html = reader.ReadToEnd();  //接收的Htmlreader.Close();
    res.Close();
    如果参数没有传过去,你把Method改成GET试试
      

  7.   

    因为我不能控制接收方是如何接受,我只能传送如下的url:
    http://expert.csdn.net/Expert/topic/1581/1581934.jsp?mobile=13054859624,13965895647&content=内容。
    然后由对方处理。
      

  8.   

    timmy3310(tim)  还在吗?我还是没有处理了,用你的方法不能使对方获得参数
      

  9.   

    你试试在IE窗口上能不能用QueryString的方式打开该页面,如果可以,那么你使用GET方式:WebRequest req = WebRequest.Create("http://expert.csdn.net/Expert/topic/1581/1581934.jsp?mobile=13054859624,13965895647&content=内容"); //参数直接带到Url上面req.Method = "GET";
    WebResponse res = req.GetResponse();System.Text.Encoding resEncoding = System.Text.Encoding.GetEncoding("gb2312");//接收的编码
    StreamReader reader = new StreamReader( res.GetResponseStream(),resEncoding );

    string html = reader.ReadToEnd();  //接收的Htmlreader.Close();
    res.Close();
      

  10.   

    谢谢了,还是不行那,WebResponse会对uri进行编码
      

  11.   

    WebResponse会对uri进行编码
    ?什么意思
      

  12.   

    Server.UrlDecode 
    Server.UrlEncode
      

  13.   

    还是不行那。楼上的方法我都用了。用 timmy3310(tim) 的方法对方得到的是乱码,我们约定的编码方式是(gb2132),我怎么样保证我传过去的就是这种编码方式呢?,谁有方法那。都烦死了。
      

  14.   

    首先你要保证你的中文字符串是GB2132然后在Url里面的参数用GB编码://url = http://expert.csdn.net/Expert/topic/1581/1581934.jsp?mobile=13054859624,13965895647&content=内容url = "http://expert.csdn.net/Expert/topic/1581/1581934.jsp?mobile=13054859624,13965895647&content"+HttpUtility.UrlEncode("内容",System.Encoding.GetEncoding("gb2312"));
    ...
      

  15.   

    System.Encoding
    应该为:
    System.Text.EncodingSorry
      

  16.   

    timmy3310(tim) 您解决了我的大问题,我想给你分,怎么结帖????