通过post方法远程获取一个页面

   //通过post方法远程获取一个页面;web:页面的路径;postData:post的数据信息
    public static string Post(string Web, string postData)
    {
        string str = ""; //要返回的结果
        postData = postData.Replace(" ", "%20");//替换空格
        try
        {
            //获取URL并发送字串
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(Web);
            //定义这个Stream是只是为了得到发送字串 经过编码之后得到的byte的长度。
            //因为如果字符串中存在中文 使用postData.Length得到长度和编码之后的长度是不一样的
            Stream myStream = new MemoryStream();
            StreamWriter myStreamWriter = new StreamWriter(myStream, Encoding.Default);//用默认编码 得到Stream               
            myStreamWriter.Write(postData);
            myStreamWriter.Flush();
            long len = myStream.Length;//目的完成
            myStreamWriter.Close();//关闭流
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";//请求的类型
            myHttpWebRequest.ContentLength = len;//长度
            myHttpWebRequest.Method = "POST";//方式
            Stream newStream = myHttpWebRequest.GetRequestStream();//得到请求数据流
            //编码使用Encoding.Default ,用它得到的中文不会出现乱码,特别是把request("")得到的值写入sql数据库的时候
            myStreamWriter = new StreamWriter(newStream, Encoding.Default);
            myStreamWriter.Write(postData);
            myStreamWriter.Close();
            //获取本次的回馈,先创建接收回馈的类HTTPWEBRESPONSE
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            //创建接收回馈的字节流类
            Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流
            Encoding encode = System.Text.Encoding.Default;//默认编码
            StreamReader readStream = new StreamReader(receiveStream, encode);
            str = readStream.ReadToEnd();//读出返回字符串
            readStream.Close();
            myHttpWebResponse.Close();//关闭资源
            return str;
        }
        catch (Exception e)
        {
            throw e;
        }
    }
原文地址:https://www.cnblogs.com/goldnet/p/1170400.html