转自:
今天突然碰到这么一个需求:
用C# 代码打开IE并且POST数据. 就是我已经知道一个网站的用户名和密码(该网站并非自己的网站) , 而在我们的网站上有这么一个按钮,点击后就打开登录后的这个网站. 微软的帮助和支持提供了这个解决方案. 为什么要这么用: 因为此网站是用session存储的会话,如果在后台先用webrequest,访问后再打开就会失败,因为打开新的浏览器后已经产生一个新的session. 只有在打开该网站的时候同时去POST数据. 请添加 COM 下 的microsoft internet controls 引用. Code /// <summary> /// 打开新的浏览器,并且提交POST数据 /// </summary> /// <param name="url">地址</param> /// <param name="postData">POST 数据</param> public static void OpenNewIe(string url, string postData) { var ie = new InternetExplorer(); object vPost, vHeaders, vFlags, vTargetFrame; vPost = null; vFlags = null; vTargetFrame = null; vHeaders = "Content-Type: application/x-www-form-urlencoded" + Convert.ToChar(10) + Convert.ToChar(13); if (!string.IsNullOrEmpty(postData)) vPost = ASCIIEncoding.ASCII.GetBytes(postData); ie.Visible = true; ie.Navigate(url, ref vFlags, ref vTargetFrame, ref vPost, ref vHeaders); }