2017-02-01 4 views
0

ブラウザのような要求をどのようにして行うのか、今日要望しています。ウェブサイトにウェブリクエストを行い、ループ内のクッキーとソースコードの変更を確認しますか?ここでwebrequestを使用して応答の変化を確認するループを作る方法

は私の実際のコードです:

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/test.php"); 
     request.CookieContainer = new CookieContainer(); // needed to keep the session alive 

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

     string value = null; 

     if (response.StatusCode == HttpStatusCode.OK) 
     { 
      bool search = true; 

      while(search == true) 
      { 
       for(int i = 0; i < response.Cookies.Count && search; i++) 
       { 
        if (response.Cookies[i].Name == "test") 
        { 
         value = response.Cookies[i].Value; 
         search = false; 
        } 
       } 
      } 
     } 

     if (value != null) 
      Console.WriteLine("found cookie : {0}", value); 

     response.Close(); 

は、事前にありがとうございます!

答えて

0

コード全体をループ内にラップし、すでに持っているwhileループを削除するだけです。 ストリーム全体を取得し、そのハッシュをどこかに格納し、それを次の応答と比較することで、応答の違いを確認したい場合。 ものtry/catchを置くことを忘れないでください、あなたが設定を微調整しない限り、デフォルトで唯一の2つの要求が許可されていることを

bool search = true; 

while (search == true) { 
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/test.php"); 
    request.CookieContainer = new CookieContainer(); // needed to keep the session alive 

    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    string value = null; 

    if (response.StatusCode == HttpStatusCode.OK) 
    {   
     for (int i = 0; i < response.Cookies.Count && search; i++) 
     { 
      if (response.Cookies[i].Name == "test") 
      { 
       value = response.Cookies[i].Value; 
       search = false; 
      } 
     }    
    } 

    if (value != null) 
    { 
     Console.WriteLine("found cookie : {0}", value); 
    } 
    response.Close(); 
} 
+0

は、あなたの答えをありがとうしかし事は、私が取得したいクッキーの後に設定されていることですそれぞれの新しい接続の後にリセットされるので、動作しない特定の時間量です。 – Chris

+0

クッキー要件を含めるように質問を編集できますか?クッキーはどのように設定されていますか?どのような仕組みで? HTTPプロトコルの私の理解は、応答が完了した後、クライアントまたはサーバーのいずれかによって接続が閉じられることです。同様のことを達成するには、wsのようなポーリングタイプのプロトコルを使用する必要があります – Catman

関連する問題