我正在嘗試編寫一個簡單的腳本,用於從網頁中提取文本並處理該字符串。但是,該網站要求我登錄。我成功登錄到該網站。這是我登錄的方式:Google Apps腳本中的Cookie處理 - 如何在標頭中發送Cookie?
var payload = {"name1":"val1","name2":val2"};
var opt ={"payload":payload,"method":"post"};
var respose = UrlFetchApp.fetch("http://website.com/login",opt);
登錄後,網站將我置於http://website.com/home
。我檢查了response.getContentText()
,我可以確認我已成功登錄,因爲它包含http://website.com/home
中的文本。 現在我需要獲取http://website.com/page
的內容並對其進行處理。 我首先假定該腳本可以自行處理cookie,並與
var pagedata = UrlFetchApp.fetch("http://website.com/page);//Did not work
這顯然沒有工作和pagedata.getContentText()
說我先登錄,這表明小甜餅沒有順利通過進行..
然後我試着提取服務器在登錄時響應的cookie,並將其與該請求一起發送。
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.
我試圖在我的頁面請求中發送該cookie。
var header = {'Cookie':cookie};
var opt2 = {"header":header};
var pagedata = UrlFetchApp.fetch("http://website.com/page",opt2);
我認爲即使是現在小甜餅無法正常發送,作爲內容又說我登錄。
我正確地傳遞cookie嗎?我需要關於在請求中發送cookie的正確方法的幫助。
感謝您指出!是的,我確定服務器只發送一個auth cookie。我會嘗試用'「標題」回報# – AKarthik10
編輯:我用'「標題」試過了,它工作。我可以確認它正在工作。我製作了一個PHP文件,它記錄了所請求的所有標題。我用UrlFetchApp請求了它,我可以在日誌中看到從UrlFetchApp發送的所有自定義標頭。所以我犯了錯誤的地方是「header」,它必須是「headers」。謝謝! – AKarthik10