HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!

时间:2022-12-29 13:55:18
为什么cookieContainer里面没有抓包工具抓到的cookie(roll_t_hd_thda=760bb74a5a0ee393bf73b70a3aa48cc2)呢?
代码:
StreamReader sr = null;
            HttpWebResponse response = null;
            HttpWebRequest request = null;
            Encoding encoding = System.Text.Encoding.GetEncoding("UTF-8");
            CookieContainer cookieContainer = new CookieContainer();
            Stream outstream = null;
            Stream instream = null;
            string content;
            string roll = "http://tc.hd.xiaomi.com/hdget?callback=hdcontrol";
            request = WebRequest.Create(roll) as HttpWebRequest;
            request.CookieContainer = cookieContainer;
            request.Method = "GET";           
            request.Host = "tc.hd.xiaomi.com";
            request.UserAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.11 Safari/537.36";
            response = (HttpWebResponse)request.GetResponse();
            instream = response.GetResponseStream();
            sr = new StreamReader(instream, encoding);

            content = sr.ReadToEnd();
            Uri urroll = new Uri(roll);

            if ((cookieContainer.GetCookieHeader(urroll).IndexOf("roll_t_hd_thda") < 0 ))
            {
                MessageBox.Show("没取到!");
            }


fiddler抓包工具显示:
Response sent 112 bytes of Cookie data:
Set-Cookie: roll_t_hd_thda=760bb74a5a0ee393bf73b70a3aa48cc2; expires=Tue, 03-Sep-13 18:46:33 GMT; path=/; domain=.xiaomi.com

This response did not contain a P3P Header.

15 个解决方案

#1


作用域未必是这个域名

有可能是  根域名.com  你看上面返回的 就是 根目录的

#2


引用 1 楼 rayyu1989 的回复:
作用域未必是这个域名

有可能是  根域名.com  你看上面返回的 就是 根目录的

那麻烦问下这个应该如何破呢?  整的我头大啊

#3


response.Cookies.Item["roll_t_hd_thda"]

上面那个只是传给服务端的  返回的在这个里面

#4


去掉request.Host = "tc.hd.xiaomi.com";

#5


该回复于2013-09-03 18:37:48被管理员删除

#6


我这里取没问题

#7


引用 4 楼 jshi123 的回复:
去掉request.Host = "tc.hd.xiaomi.com";

去掉之后还是取不到,还是空的 HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!

#8


引用 6 楼 hdt 的回复:
我这里取没问题

麻烦您能否贴下代码啊?  我这怎么取都有问题

#9


引用 3 楼 rayyu1989 的回复:
response.Cookies.Item["roll_t_hd_thda"]

上面那个只是传给服务端的  返回的在这个里面
返回的也应该存在cookieContainer里面吧?

#10


就是用你的代码
HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!

#11


引用 10 楼 hdt 的回复:
就是用你的代码
HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!
嗯 的确reponse里面有,我记得之前可以cookiecontainer里面会自动保存的,不晓得 现在怎么不保存到cookiecontainer里面了

#12


HttpWebResponse.Cookies 才对。

#13


看看msdn,看看人家的例子。

#14


引用 13 楼 sp1234 的回复:
看看msdn,看看人家的例子。
嗯 多谢

#15


引用 10 楼 hdt 的回复:
就是用你的代码
HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!
能否帮我把这个帖子删掉啊?

#1


作用域未必是这个域名

有可能是  根域名.com  你看上面返回的 就是 根目录的

#2


引用 1 楼 rayyu1989 的回复:
作用域未必是这个域名

有可能是  根域名.com  你看上面返回的 就是 根目录的

那麻烦问下这个应该如何破呢?  整的我头大啊

#3


response.Cookies.Item["roll_t_hd_thda"]

上面那个只是传给服务端的  返回的在这个里面

#4


去掉request.Host = "tc.hd.xiaomi.com";

#5


该回复于2013-09-03 18:37:48被管理员删除

#6


我这里取没问题

#7


引用 4 楼 jshi123 的回复:
去掉request.Host = "tc.hd.xiaomi.com";

去掉之后还是取不到,还是空的 HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!

#8


引用 6 楼 hdt 的回复:
我这里取没问题

麻烦您能否贴下代码啊?  我这怎么取都有问题

#9


引用 3 楼 rayyu1989 的回复:
response.Cookies.Item["roll_t_hd_thda"]

上面那个只是传给服务端的  返回的在这个里面
返回的也应该存在cookieContainer里面吧?

#10


就是用你的代码
HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!

#11


引用 10 楼 hdt 的回复:
就是用你的代码
HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!
嗯 的确reponse里面有,我记得之前可以cookiecontainer里面会自动保存的,不晓得 现在怎么不保存到cookiecontainer里面了

#12


HttpWebResponse.Cookies 才对。

#13


看看msdn,看看人家的例子。

#14


引用 13 楼 sp1234 的回复:
看看msdn,看看人家的例子。
嗯 多谢

#15


引用 10 楼 hdt 的回复:
就是用你的代码
HttpWebRequest 请求网页为什么拿不到返回cookie?求解啊!
能否帮我把这个帖子删掉啊?