Necesito conservar el mismo ID de sesión cuando navego por las páginas de un sitio usando C# .Net (como un rastreador). Encontré un par de métodos, un sniffer http fue muy útil para comparar lo que mi navegador IE estaba enviando (solicitud HTTP) y recibir del servidor web (respuesta HTTP), ya que la información importante está en los encabezados (que no se muestran por el navegador). No confunda la identificación de la sesión que es pública entre el servidor y el navegador, y las variables de sesión del servidor que son privadas con el código del servidor (como php).C# mantener el ID de la sesión en httpwebrequest
WebHeaderCollection headerCollection = new WebHeaderCollection();
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
/* save headers */
for (int i = 0; i < response.Headers.Count; i++)
{
headerCollection.Add(response.Headers.AllKeys[i], response.Headers.Get(i));
}
/* save cookies */
cookieContainer = new CookieContainer();
foreach (Cookie cookie in response.Cookies)
{
cookieContainer.Add(cookie);
}
}
para hacer las otras peticiones GET o POST:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
...
/* restore PHPSESSID */
for (int i = 0; i < headerCollection.Count; i++)
{
string key = headerCollection.GetKey(i);
if (key == "Set-Cookie")
{
key = "Cookie";
}
else
{
continue;
}
string value = headerCollection.Get(i);
request.Headers.Add(key, value);
}
/* restore cookies */
request.CookieContainer = cookieContainer;
/* complete request */
Stream writeStream = request.GetRequestStream()
Mi petición es contribuir con un mejor código o ideas adicionales para hacer una mejor sesión de preservar rastreador.
favor haga un esfuerzo para dar formato a su código. http://stackoverflow.com/editing-help – spender