2011-06-08 7 views
5

kullanırken oturumun tutulması Projemde C# uygulama istemcisi ve tomcat6 web uygulama sunucusu kullanıyorum. C# istemci bu pasajı yazdı: Ben bu yöntemi çağırmakHttpWebRequest

public bool isServerOnline() 
{ 
     Boolean ret = false; 

     try 
     { 
      HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL); 
      req.Method = "HEAD"; 
      req.KeepAlive = false; 
      HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
      if (resp.StatusCode == HttpStatusCode.OK) 
      { 
       // HTTP = 200 - Internet connection available, server online 
       ret = true; 
      } 
      resp.Close(); 
      return ret; 

     } 
     catch (WebException we) 
     { 
      // Exception - connection not available 
      Log.e("InternetUtils - isServerOnline - " + we.Status); 
      return false; 
     } 
} 

her şey, ben sunucu tarafında yeni bir oturum olsun. Sanırım, istemcimde HTTP çerezleri kullanmalıyım. Ama bunu nasıl yapacağımı bilmiyorum, bana yardım edebilir misin?

+0

İyi soru! Geçiş seansları beni geçmişte tuttu. – Ivo

+0

Ve bu sorunu çözdünüz mü? – CeccoCQ

+0

Guillaume önerisini daha sonra – Ivo

cevap

21

CookieContainer numaralı telefonu kullanmalı ve örneği aramalar arasında tutmalısınız.

private CookieContainer cookieContainer = new CookieContainer(); 
public bool isServerOnline() 
{ 
     Boolean ret = false; 

     try 
     { 
      HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL); 
      req.CookieContainer = cookieContainer; // <= HERE 
      req.Method = "HEAD"; 
      req.KeepAlive = false; 
      HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
      if (resp.StatusCode == HttpStatusCode.OK) 
      { 
       // HTTP = 200 - Internet connection available, server online 
       ret = true; 
      } 
      resp.Close(); 
      return ret; 

     } 
     catch (WebException we) 
     { 
      // Exception - connection not available 
      Log.e("InternetUtils - isServerOnline - " + we.Status); 
      return false; 
     } 
} 
+0

Teşekkürler, deneyeceğim ve çalışıp çalışmadığını size bildirin. Ama bir sorum var: çerez dolduysa bunu nasıl yönetebilirim? – CeccoCQ

+0

Başka bir soru, ama Cookie'den yanıt almamalı mıyım? – CeccoCQ

+0

Kap doldurulacak, yanıt tanımlama bilgisine dikkat etmeniz gerekmez. Ayrıca kapsayıcının boyutu sınırlıdır ve sınıra ulaşıldığında, zaman aşımına uğramış çerezler kaldırılır. – Guillaume