string ret = string.Empty; try
{
//发送请求
HttpWebRequest req = ( HttpWebRequest )WebRequest.Create( "url" );
byte[] beff = Encoding.BigEndianUnicode.GetBytes( "要发送的字串" );
req.Method = "post";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = beff.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write( beff, 0, beff.Length );
reqStream.Close(); //接收返回字串
HttpWebResponse res = ( HttpWebResponse )req.GetResponse();
StreamReader sr = new StreamReader( res.GetResponseStream(), Encoding.BigEndianUnicode );
ret = sr.ReadToEnd();
sr.Close();
res.Close();
}
catch( Exception e )
{
ret = string.Empty;
throw new Exception( e.Message );
} return ret;
以上是我发送POST请求,然后经过服务的URL处理后返回一个处理后的字串,为什么要不就是403错误,要不就是501错误拉,快帮我看看拉,急死了,谢谢大家了!

解决方案 »

  1.   

    服务器端必须支持post方法阿 要能处理post方法提交的数据才不会出错
      

  2.   

    有这样的服务页面,可以接收POST请求
      

  3.   

    Create(url );这样写 .. 把引号去掉...
      

  4.   

    403错误是找不到地址的错误, 可能是防火墙或者是web页或者是80端口问题, 不过LZ这个是地址问题....
      

  5.   

    我返回的是
    远程服务器返回错误: (500) 内部服务器错误Create(url)的方法绝对正确,只是我copy地址过来的时候改了一下的
    至于提到的防火墙也没有问题,我用telnet命令测试过,是通的哪位高手帮忙看看啊,真急死了
      

  6.   

    另外接收POST请求的代码如下
    string ret = string.Empty;
    Stream inputStream = System.Web.HttpContext.Current.Request.InputStream;
    BinaryReader br = new BinaryReader( inputStream, System.Text.Encoding.BigEndianUnicode );
    int length = int.Parse( inputStream.Length.ToString() );
    byte[] b = br.ReadBytes( length );
    ret = System.Text.Encoding.BigEndianUnicode.GetString( b );
    br.Close();
    return ret;快来高手帮我看看啊
      

  7.   

    是你的参数传错了吧,是不是要经过UTF-8转换才行?
      

  8.   

    不用,我用UTF-16是一样的应为我提供的服务是给别人用的,他们是UTF-16的编码
      

  9.   

    如果你发送的是UBB代码或则是XML字串,那么在webconfig里加上
    <pages validateRequest="false"></pages>放在<system.web>里同时在请求的时候的url要指定到文件,不能是目录名