c#模拟表单POST数据,并获取跳转之后的页面

直接看代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Net;
using System.IO;

namespace FactoryCollect.common
{
    public class HttpHelper
    {
        public static string Post(string url, string content, string encoding)
        {
            //获取提交的字节,这里的字符编码根据实际情况而定
            byte[] bs = Encoding.GetEncoding("gb2312").GetBytes(content);
            //设置提交的相关参数
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = bs.Length;
            req.KeepAlive = false;
            //提交请求数据
            Stream reqStream = req.GetRequestStream();
            reqStream.Write(bs, 0, bs.Length);
            reqStream.Close();
            //接收返回的页面,必须的,不能省略
            WebResponse wr = req.GetResponse();
            //获取跳转页面的地址,然后再用(HttpWebRequest)HttpWebRequest.Create(url);重新请求
            url = wr.ResponseUri.AbsoluteUri;
            req = (HttpWebRequest)HttpWebRequest.Create(url);
            req.Method = "GET";
            //接收返回的页面,必须的,不能省略
            wr = req.GetResponse();
            System.IO.Stream respStream = wr.GetResponseStream();
            System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding(encoding));
            string t = reader.ReadToEnd();
            wr.Close();
            respStream.Close();
            reader.Close();
            return t;
        }
    }
}

 

posted @ 2013-08-15 10:07  屌丝大叔的笔记  阅读(1843)  评论(0编辑  收藏  举报