2014-09-25 2 views
1

내 질문은 어떻게 C#에서 동일한 인증 쿠키와 함께 HttpWebRequest를 통해 여러 요청을 호출 할 수 있습니까? 나는 시간을 많이 시도하지만 지금 나는 그것을 수행하는 방법을 몰라 /이C# HttpWebRequest를 통해 동일한 쿠키로 여러 POST, GET 요청을 호출하려면 어떻게해야합니까?

내 코드는 다음과 같습니다 :

 var postData = "method=loginFormAccount&args[0][email]=###&args[0][pass]=###&args[0][cache]=37317&args[]=1"; 
     var data = Encoding.ASCII.GetBytes(postData); 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("###"); 
     request.CookieContainer = new CookieContainer(); 
     request.Method = "POST"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.AllowAutoRedirect = true;    

     using (var stream = request.GetRequestStream()) 
     { 
      stream.Write(data, 0, data.Length); 
     } 

     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

     var cookies = new CookieContainer(); 
     cookies.Add(response.Cookies); 

     System.IO.File.WriteAllText(@desktop + "\\post.html", new StreamReader(response.GetResponseStream()).ReadToEnd()); 

     // =================================== END LOGIN ==================================== \\ 

     System.IO.File.WriteAllText(@desktop + "\\cookie.html",""); 

     foreach (Cookie cook in response.Cookies) 
     { 
      using (System.IO.StreamWriter file = new System.IO.StreamWriter(@desktop + "\\cookie.html", true)) 
      { 
       file.WriteLine(cook.ToString()); 
      } 
      // Show the string representation of the cookie.     
     } 

     HttpWebRequest requestNext = (HttpWebRequest)WebRequest.Create("####"); 
     requestNext.CookieContainer = cookies; 
     requestNext.Method = "GET"; 

     HttpWebResponse responseNext = (HttpWebResponse)requestNext.GetResponse(); 

     //var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

     System.IO.File.WriteAllText(@desktop + "\\get.html", new StreamReader(responseNext.GetResponseStream()).ReadToEnd()); 

내 주요 문제는 내가 갖는 쿠키는 쿠키 전에 인증이다,이다 그래서 나는 인증 후에 쿠키를 얻기 위해 뭔가를해야만한다.

+0

당신이 첫 번째 요청에서 다시 인증 쿠키를 점점 확실해? –

+0

예, 확실합니다. 나는 뭔가있어. 코드는이 순간에 잘 작동합니다.'var cookies = new CookieContainer(); cookies.Add (response.Cookies);'응용 프로그램이 쿠키를 CookieContainer에 추가했지만 다음 요청에이 CookieContainer를 추가 할 수 없습니다. 나는 첫 번째 요청 (이 쿠키는 작동 중임)에서 파일에 쿠키를 쓰는 작은 함수를 작성하고 두 번째 요청 (GET)은 첫 번째 매개 변수가 전달되지 않은 것처럼 새 쿠키를 작성하는 요청을 작성합니다. 나는 왜 그것이 새로운 쿠키를 창조하는지 모른다 :/ – Tesly

답변

0

이 시도 :

HttpWebRequest requestNext = (HttpWebRequest)WebRequest.Create("####"); 
requestNext.CookieContainer.Add(cookies); 
+0

아직도 작동하지 않는다 – Tesly