Estoy tratando de escribir un script simple que recupera el texto de una página web y procesa esa cadena. Pero, ese sitio web requiere que inicie sesión. Tuve éxito al iniciar sesión en ese sitio web. Esta es la forma en que se registra en:Manejo de cookies en Google Apps Script - ¿Cómo enviar cookies en el encabezado?
var payload = {"name1":"val1","name2":val2"};
var opt ={"payload":payload,"method":"post"};
var respose = UrlFetchApp.fetch("http://website.com/login",opt);
Después de iniciar la sesión, la página web me coloca en http://website.com/home
. Revisé response.getContentText()
y puedo confirmar que he iniciado sesión correctamente, ya que contiene el texto de http://website.com/home
. Ahora necesito obtener el contenido de http://website.com/page
y procesarlo. primera vez que asume el guión puede manejar las cookies por sí mismo y procedió con
var pagedata = UrlFetchApp.fetch("http://website.com/page);//Did not work
Ese trabajo obviamente no funcionaba y pagedata.getContentText()
dice que me registre en primer lugar, lo que indica cookies no se ha superado con éxito ..
Entonces intenté extraer las cookies que el servidor respondió durante el inicio de sesión y enviarlas junto con esta solicitud.
var cookie = response.getAllHeaders()['Set-Cookie'];
// variable cookie now contains a legitimate cookie.
// It contains 'JSESSIONID=blabla;Path=/' and
// it is the ONLY cookie that server responds.
Intenté enviar esa cookie en mi solicitud de página.
var header = {'Cookie':cookie};
var opt2 = {"header":header};
var pagedata = UrlFetchApp.fetch("http://website.com/page",opt2);
Creo que incluso ahora las cookies no se enviaron correctamente, ya que el contenido me dice nuevamente que inicie sesión.
¿Estoy pasando las cookies correctamente? Necesito ayuda con respecto al método correcto para enviar cookies en una solicitud.
¡Gracias por señalarlo !. Sí, estoy seguro de que el servidor envía solo una cookie de autenticación. Trataré de reportarlo con '" encabezados "' – AKarthik10
EDITAR: Lo intenté con '" encabezados "' y funcionó. Puedo confirmar que está funcionando. Hice un archivo PHP, que registra todos los encabezados con los que fue solicitado. Lo solicité con UrlFetchApp y pude ver en mi registro todos los encabezados personalizados que envié desde UrlFetchApp. Entonces, donde cometí un error fue '" header "' y debe ser '" headers "'. ¡Gracias! – AKarthik10