nagaD.scar
Messages postés4271Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
Modifié par nagashima le 3/03/2014 à 16:03
nagaD.scar
Messages postés4271Date d'inscriptionsamedi 8 septembre 2007StatutMembreDernière intervention 4 janvier 2023
-
3 mars 2014 à 16:53
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.