J'utilise une combinaison de HtmlAgilityPack et Fiddler pour surveiller le trafic. Avec fiddler, vous pouvez voir le message envoyé au serveur et le répliquer. Ensuite, vous pouvez capturer les données de cookie pour enregistrer la session de connexion. De là, c'est normal de naviguer autour du site.
Si vous utilisez un identifiant pour obtenir les données, il peut y avoir un cookie. Si c'est le cas, vous devez le définir dans cookieContainer. C'est un exemple de fonction que j'utilise pour publier des données dans une URL.
private string PostWebRequestContent(Uri uri, string postData)
{
CookieContainer cookies = LoggedInCookie();
foreach (Cookie c in cookies.GetCookies(uri))
{
int i = 0;
}
HttpWebRequest req = GetWebRequest(uri);
req.CookieContainer = cookies;
req.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, application/vnd.xfdl; version=7.5.0.51, application/x-shockwave-flash, */*";
req.Method = "POST";
req.Headers.Add("Accept-Language: en-us");
//req.Headers.Add("Accept-Encoding: gzip,deflate");
//req.Headers.Add("Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7");
req.KeepAlive = true;
req.ContentType = "application/x-www-form-urlencoded";
StreamWriter requestWriter = new StreamWriter(req.GetRequestStream());
requestWriter.Write(postData);
requestWriter.Close();
string sid = "";
try
{
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
sid = sr.ReadToEnd().Trim();
}
}
}
catch (WebException e)
{
Console.WriteLine(e.Message);
}
return sid;
}
fonction de session Cookie
private CookieContainer GetSessionCookie(Uri uri)
{
HttpWebRequest req = GetWebRequest(uri);
CookieContainer cookies = new CookieContainer();
req.CookieContainer = cookies;
req.GetResponse().Close();
return cookies;
}
Si la forme soumet via GET alors il est juste une question de construire l'URL avec? Name = blabla & password = paramètres blabla, puis tirer l'url. –
Oui John je l'ai fait en effet. Pas grand chose, j'ai trouvé la méthode que j'ai utilisée pour les bots précédents. N'a pas codé en C# depuis près d'un an. –
Sergio Tapia, non ce sont des demandes POST. –