2012-06-17 288 views
1

我試圖發佈並獲取cookie。我是新手,這對我來說是一個學習項目。我的印象是,如果您使用'set-cookie',則應該能夠在.toSource中看到額外的'set-cookie'。 (我試圖在Google Apps網站上完成此操作,如果這有所幫助)。我錯過了什麼?這裏是我的代碼:Google Apps腳本和Cookie

function setGetCookies() { 

    var payload = {'set-cookie' : 'test'}; 
    var opt2 = {'headers':payload, "method":"post"}; 

    UrlFetchApp.fetch("https://sites.google.com/a/example.com/blacksmith", opt2); 
    var response = UrlFetchApp.fetch("https://sites.google.com/a/example.com/blacksmith") 

    var openId = response.getAllHeaders().toSource(); 
    Logger.log(openId)  

    var AllHeaders = response.getAllHeaders(); 
    for (var prop in AllHeaders) { 
    if (prop.toLowerCase() == "set-cookie") { 
     // if there's only one cookie, convert it into an array: 
     var myArray = []; 
     if (Array.isArray(AllHeaders[prop])) { 
     myArray=AllHeaders[prop]; 
     } else { 
     myArray[0]=AllHeaders[prop]; 
     } 
     // now process the cookies 
     myArray.forEach(function(cookie) { 
     Logger.log(cookie); 
     }); 
     break; 
    } 
    } 

} 

在此先感謝!我引用這個來開發代碼:Cookie handling in Google Apps Script - How to send cookies in header?

向任何建議打開。

回答

1

當您未登錄時Google協作平臺將不會在響應中設置任何Cookie。 UrlFetchApp不會傳遞您的Google Cookie,因此它會表現得好像您已註銷一樣。

0

首先,您要發送名稱爲'test'的cookie沒有值。你應該發送'test = somevalue'。

第二我想知道你是否試圖發送cookie到googlesite服務器,並要求它回覆你之前發送的同一個cookie ...?

我想你是一個HTTP服務器,你是一個HTTP客戶端。 作爲一個HTTP客戶端,您的角色只是發回HTTP服務器以前發送給您的任何cookie(尊重域,過期... params)。