首页 新闻 会员 周边 捐助

HttpWebRequest如何得到类似前端生成的cookie呢,因为后面请求缺这个值

0
悬赏园豆:40 [已解决问题] 解决于 2016-07-31 09:19
此Cookie是由前端js生成[图1],HttpWatch是抓不到的。只能抓到Sent[图2]
 
 
图1:
 
图2:
问题补充:

后面查账单需要这个cookie键值。连接:http://www.itpub.net/thread-1712534-1-1.html

王庆东mas的主页 王庆东mas | 初学一级 | 园豆:4
提问于:2016-04-07 18:12
< >
分享
最佳答案
1

用WebBrowder控件抓取

收获园豆:40
上帝之城 | 老鸟四级 |园豆:2549 | 2016-04-07 23:48

不是winform程序,是Asp.net

王庆东mas | 园豆:4 (初学一级) | 2016-04-08 10:46

@0ng_Ching_Tong: 谁跟你说asp.net不能用winform的类?

上帝之城 | 园豆:2549 (老鸟四级) | 2016-04-08 13:40

@上帝之城: 出现了错误,http://bbs.csdn.net/topics/350154823  和这个帖子一样的错误。请看八楼。

王庆东mas | 园豆:4 (初学一级) | 2016-04-12 22:59

@0ng_Ching_Tong:设置线程单元状态为单线程

thread.SetApartmentState(System.Threading.ApartmentState.STA);

thread.start();

上帝之城 | 园豆:2549 (老鸟四级) | 2016-04-12 23:33

@上帝之城: 这个代码写在哪里啊,能给个简单demo吗?大婶

王庆东mas | 园豆:4 (初学一级) | 2016-04-13 09:19

@0ng_Ching_Tong: 

using System;
using System.Diagnostics;
using System.Threading;
using System.Web.Mvc;
using System.Windows.Forms;

namespace InjectWebBrowser.Controllers
{
    public class HomeController : Controller
    {
        Form form;
        WebBrowser browser;
        Thread thread;
        bool complated;
        string html = string.Empty;

        public string Index()
        {
            thread = new Thread(() =>
            {
                form = new Form();
                form.Load += form_Load;
                browser = new WebBrowser();
                browser.Dock = DockStyle.Fill;
                browser.DocumentCompleted += browser_DocumentCompleted;

                form.Controls.Add(browser);
                form.ShowDialog();
            });
            thread.IsBackground = false;
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();

            while (!complated)
            {
                Thread.Sleep(1000);
            }

            return "<textarea cols='100' rows='20'>" + html + "</textarea>";
        }

        void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            html = browser.DocumentText;
            Debug.Print(html);
            complated = true;            
        }

        void form_Load(object sender, EventArgs e)
        {
            browser.Navigate("http://www.baidu.com");
        }
    }
}

拿去玩吧,在debug调试模式下成功获取了html代码,debug不调试报“对com组件的调用返回了错误hresult e_fail”,网上有解决方案,自己参考一下吧。

上帝之城 | 园豆:2549 (老鸟四级) | 2016-04-13 15:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册