>

Fiddler 확장 프로그램 RequestToCode를 사용하여 Yahoo에 로그인하여 POST를 재생했습니다.

코드를 실행하면 Fiddler에서 로그인에 성공했으며 응답에 쿠키가 10 개 있음을 알 수 있습니다.

내 코드에서는 response.Cookies의 수가 0이었습니다.

그래서 HTTPWebRequest를 업데이트하고 설정했습니다 :

request.CookieContainer = new CookieContainer();

코드를 다시 실행하고 Fiddler에서 코드를 보면 응답이 실패한 로그인 URL로 이동하기 때문에 로그인에 실패했습니다.

내 궁극적 인 목표는 로그인 시도에서 쿠키를 가져와 나중에 Yahoo에 대한 Get 요청에 사용하는 것입니다.

쿠키 컨테이너를 설정하는 이유는 무엇입니까?

  • 답변 # 1

    새로운 CookieContainer 를 초기화했기 때문에  모든 요청에. 공개 변수 CookieContainer cookies = new CookieContainer(); 선언

    이제 새로운 요청은 동일한 CookieContainer 를 사용합니다 예 :

       var request = (HttpWebRequest)WebRequest.Create("https://www.yahoo.com/");
        request.CookieContainer = cookies;
        request.Method = "GET";
        request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36";
        request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
        request.Headers.Add("accept-language", "en,hr;q=0.9");
        request.Headers.Add("accept-encoding", "");
        request.Headers.Add("Upgrade-Insecure-Requests", "1");
        WebResponse response = request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
        string responseFromServer = reader.ReadToEnd();
        reader.Close();
        response.Close();
    
    

  • 이전 c++ - regex_search에 matchsuffix ()를 저장하려면 str ()을 사용해야합니까?
  • 다음 c# - Await Task가 반환되지 않으면 비동기 메서드가 동기화됩니까?