[webClient] connexion keep alive [Résolu]

Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Dernière intervention
29 août 2018
-
salut à tous !

Bon je pense que le titre est parlant pour ceux qui connaissent. J'ai donc un petit soucis pour me logger en utilisant webClient : je ne parviens à faire ma connexion.
J'essaye donc de comprendre ce que j'envois qui poserai problème, et j'ai une différence : j'envoi "Expect: 100-continue", soit qu'apparemment je n'ai pas fini d'envoyer mes infos.

J'essaye donc de palier ce problème mais sans succès. Voici mon code de connexion (les éléments de connexion étant masqué) :


 CookieContainer cc = new CookieContainer();
 WebClient cl = new WebClient();
 cl.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36";
 cl.Headers["Accept"] = "*/*";

 NameValueCollection collection = new NameValueCollection();
 collection.Add("Email", "mail@domain.fr");
 collection.Add("Password", "mdp");

 String content = Encoding.UTF8.GetString(cl.DownloadData(new Uri("http://portail.com")));

 cc.SetCookies(new Uri("http://epsiportal.com/Site/SAAB/"), cl.ResponseHeaders.Get("Set-Cookie"));
 cl.Headers.Set(HttpRequestHeader.Cookie, cc.GetCookieHeader(new Uri("http://portail.com")));

 cl.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36";
 cl.Headers["Accept"] = "*/*";
 cl.Headers["Origin"] = "http://portail.com";
 cl.Headers["Referer"] = "http://portail.com/Account/LogOn";

 
 content = Encoding.UTF8.GetString(cl.UploadValues(new Uri("http://portail.com"/Account/LogOn"), "POST", collection));


//-->c 'est la derniere ligne qui pose "problème"


j'ai essayé de surcharger web client :



 public class WebClientKeepAlive : WebClient
 {
  protected override WebRequest GetWebRequest(Uri address)
  {
   var request = base.GetWebRequest(address);
   if (request is HttpWebRequest)
   {
    ((HttpWebRequest)request).KeepAlive = true;
   }

   return request;
  }
 }

et donc en utilisant l'objet surchargé, mais seul le premier appel fonctionne.

Quelqu'un pourrai il m'éclairer ?

merci d'avance

naga
Afficher la suite 

Votre réponse

1 réponse

Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Dernière intervention
29 août 2018
0
Merci
j'ai trouvé pour désactiver ce expect, mais je ne parviens pas à forcer le keepAlive

	public class WebClientKeepAlive : WebClient
	{
		protected override WebRequest GetWebRequest(Uri address)
		{
			var request = base.GetWebRequest(address);
			if (request is HttpWebRequest)
			{
				((HttpWebRequest)request).KeepAlive = true;
				((HttpWebRequest)request).ServicePoint.Expect100Continue = false;
			}

			return request;
		}
	}
Commenter la réponse de nagaD.scar

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.