Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 无法使用HttpWebRequest获取wp7中的Cookie_Windows Phone 7_Cookies_Httpwebrequest - Fatal编程技术网

Windows phone 7 无法使用HttpWebRequest获取wp7中的Cookie

Windows phone 7 无法使用HttpWebRequest获取wp7中的Cookie,windows-phone-7,cookies,httpwebrequest,Windows Phone 7,Cookies,Httpwebrequest,我正试图在post请求中保存cookies。这是我的密码: CookieContainer myCookieContainer = new CookieContainer(); HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); myHttpWebRequest.ContentType = "application/x-www-form-urlencod

我正试图在post请求中保存cookies。这是我的密码:

        CookieContainer myCookieContainer = new CookieContainer();
        HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
        myHttpWebRequest.UserAgent = userAgent;
        myHttpWebRequest.CookieContainer = myCookieContainer;
        myHttpWebRequest.Method = "POST";

        byte[] postdata = encoding.GetBytes(submitString);

        myHttpWebRequest.BeginGetRequestStream(async1 =>
        {
            using (Stream stream = myHttpWebRequest.EndGetRequestStream(async1))
                stream.Write(postdata, 0, postdata.Length);
            myHttpWebRequest.BeginGetResponse(async2 =>
            {
                HttpWebResponse rep = (HttpWebResponse)myHttpWebRequest.EndGetResponse(async2);
                CookieCollection cookies = rep.Cookies;
                using (Stream stream = rep.GetResponseStream())
                using (StreamReader sr = new StreamReader(stream))
                {
                    String content = sr.ReadToEnd();
                    if (pageDownloadedEventHandler != null)
                        pageDownloadedEventHandler(content);
                }
            }, null);
        }, null);
通常CookieContainer是空的。
如何获取Cookie?

您的代码似乎很完美,如果服务器将任何Cookie发回给您,您应该在rep.Cookie以及myCookieContainer中看到它们


如果您想确保使用Fiddler或Wireshark分析HTTP网络流量并查找cookies,但如果我是对的,您将找不到它们。在这种情况下,我的想法是使用浏览器分析执行相同请求的网络流量,可能是php/asp.net/other应用程序由于缺少一些请求头而决定不设置Cookie。

您的代码似乎很完美,如果服务器将任何Cookie发送给您,您应该在rep.Cookie以及myCookieContainer中看到它们


如果您想确保使用Fiddler或Wireshark分析HTTP网络流量并查找cookies,但如果我是对的,您将找不到它们。在这种情况下,我的想法是使用浏览器分析执行相同请求的网络流量,可能是php/asp.net/other应用程序由于缺少一些请求头而决定不设置Cookie。

您发送的请求没有Cookie,您确定服务器确实设置了要传回的Cookie吗?@JoachimIsaksson是,我在Wiresharky中看到Cookie你发送的请求没有Cookie,你确定服务器真的设置了要传回的Cookie吗?@JoachimIsaksson是的,我在Wiresharkthank中看到了Cookie以供你建议。我使用wireshark,发现服务器确实返回了cookies。我发现该站点的过程必须两次确认,我所做的是第二次传递一个空页面DownloadedEventHandler。在我把它改成真正的处理器后,饼干出现了。这是因为异步代码不会同步cookieContainer中的cookie吗?在异步请求的情况下,cookie容器也会同步。可能是因为您没有指定下载的事件处理程序,所以库假设您不需要任何响应数据,所以它没有收到任何响应数据。谢谢您的建议。我使用wireshark,发现服务器确实返回了cookies。我发现该站点的过程必须两次确认,我所做的是第二次传递一个空页面DownloadedEventHandler。在我把它改成真正的处理器后,饼干出现了。这是因为异步代码不会同步cookieContainer中的cookie吗?在异步请求的情况下,cookie容器也会同步。可能是因为您没有指定下载的事件处理程序,所以库假设您不需要任何响应数据,所以它没有接收任何响应数据。