여기에서 문제가 무엇인지 완전히 혼동합니다. CookieContainer
에 대한 제 이해가 완전히 틀려야합니다. 내 컴퓨터에서 호스팅되는 웹 사이트에 로그인하려고합니다. 필자는 프록시로 설정하여 트래픽을 읽을 수 있습니다.Windows Phone 7의 HttpWebResponse에서 쿠키를 가져올 수 없습니다.
Windows 전화에서 쿠키를 보려고 할 때마다 쿠키 컨테이너는 항상 비어 있습니다. 나는 그 컨테이너를 채울 수있을만큼 많은 다른 것들을 시도했지만 모든 것이 실패했습니다. 내가 콘솔 응용 프로그램에서 동일한 코드를 사용하는 경우
그러나 CookieContainer cc = new CookieContainer();
HttpWebRequest request = WebRequest.CreateHttp("http://localhost:8888/account/logon");
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.CookieContainer = cc;
request.BeginGetRequestStream(streamResult =>
{
HttpWebRequest xR = streamResult.AsyncState as HttpWebRequest;
Stream stream = xR.EndGetRequestStream(streamResult);
StreamWriter sw = new StreamWriter(stream);
sw.Write("username=user1&password=1111");
sw.Close();
xR.BeginGetResponse(responseResult =>
{
HttpWebRequest yR = responseResult.AsyncState as HttpWebRequest;
HttpWebResponse response = yR.EndGetResponse(responseResult) as HttpWebResponse;
response.Close();
Dispatcher.BeginInvoke(() => MessageBox.Show("cc count: " + cc.Count.ToString() + "\nresponse count: " + response.Cookies.Count));
}, xR);
}, request);
는, 컨테이너 "CC"는 쿠키를 가지고 : 이것은 내가 시도한 마지막입니다!
CookieContainer cc = new CookieContainer();
HttpWebRequest request = WebRequest.CreateHttp("http://localhost:8888/account/logon");
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.CookieContainer = cc;
request.BeginGetRequestStream(streamResul =>
{
HttpWebRequest xR = streamResul.AsyncState as HttpWebRequest;
Stream stream = xR.EndGetRequestStream(streamResul);
StreamWriter sw = new StreamWriter(stream);
sw.Write("username=user1&password=1111");
sw.Close();
xR.BeginGetResponse(responseResult =>
{
HttpWebRequest yR = responseResult.AsyncState as HttpWebRequest;
HttpWebResponse response = yR.EndGetResponse(responseResult) as HttpWebResponse;
response.Close();
Console.WriteLine("cc count: {0}\nresponse count: {1}", cc.Count.ToString(), response.Cookies.Count);
}, xR);
}, request);
Console.Read();
서버는 내가 테스트 할 때마다 찾고있는 두 가지 쿠키를 모두 보냅니다. 그러나 어떤 이유로 든 Windows 전화 코드는 쿠키를 얻지 못합니다. 이것은이 질문과 거의 같습니다 : Cannot get cookies in wp7 using HttpWebRequest 그러나 해결책이 무엇인지 이해하지 못합니다.
Windows 전화의 URL에서 쿠키를받는 방법을 알려주십시오. – Aju