ouvrir un site Web en utilisant le contrôle WebBrowser et puis enregistrez les cookies dans CookieContainer, et utiliser plus tard HttpWebRequest pour traiter les pages de navigation avant etc.comment supprimer/mettre à jour un cookie dans un cookie container C#?
La question se pose, quand je fais une recherche et il retourne 100 pages, sur la première page , il enregistre un cookie nommé: ABC, que j'ajoute à cookiecontainer et passe à la page suivante, sur la deuxième page encore Cookie même nommé: ABC est donné une valeur, mais maintenant j'ai deux mêmes cookies dans cookiecontainer et quand je bouge à la page suivante, cela ne fonctionne pas, car il prend le premier cookie qui gâche tout.
Comment résoudre ce problème?
HttpWebRequest FONCTION:
public string getHtmlCookies(string url)
{
string responseData = "";
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Accept = "*/*";
request.AllowAutoRedirect = true;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
request.Timeout = 30000;
request.Method = "GET";
request.CookieContainer = yummycookies;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
foreach (Cookie cookie in response.Cookies)
{
string name = string.Empty;
name = cookie.Name;
string value = cookie.Value;
string path = "/";
string domain = "www.example.com";
yummycookies.Add(new Cookie(name.Trim(), value.Trim(), path, domain));
}
Stream responseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(responseStream);
responseData = myStreamReader.ReadToEnd();
}
response.Close();
}
catch (Exception e)
{
responseData = "An error occurred: " + e.Message;
}
return responseData;
}
Vous n'avez pas besoin d'ajouter explicitement les cookies de la réponse, ils sont ajoutés à yummycookies quand vous rentrerez la réponse (tant car il ne redirige pas) –
Si je ne les ajoute pas, il ne passe même pas de la page 1 à la page 2. – confusedMind
Le yummyCookie contient les informations de connexion et plus tard le cookie à la page 1, alors supposé obtenir le cookie à la page 2, même nom qu'à la page 1 qui est en conflit. – confusedMind