1

投稿してCookieを取得しようとしています。私は初心者で、これは私にとっての学習プロジェクトです。私の印象では、「set-cookie」を使用すると、.toSourceに追加の「set-cookie」が表示されるはずです。(違いが生じる場合は、Google Appsサイトでこれを達成しようとしています。)何かが足りませんか?これが私のコードです:

 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;
    }
  }

}

前もって感謝します!私はこれを参照してコードを開発しました:Google Apps ScriptでのCookieの処理-ヘッダーでCookieを送信する方法は?

どんなアドバイスにもオープン。

4

2 に答える 2

1

ログインしていない場合、Google サイトは応答に Cookie を設定しません。UrlFetchApp は Google Cookie を渡さないため、ログアウトしたかのように動作します。

于 2012-06-18T18:44:14.497 に答える
0

まず、送信したい名前が「test」の Cookie に値がありません。「test=somevalue」を送信する必要があります。

2 番目に、Cookie を googlesite サーバーに送信して、以前に送信したのと同じ Cookie で応答するように依頼しようとしているのだろうかと思っています... ?

あなたはHTTPクライアントであることに加えて、HTTPサーバーとして機能しようとしていると思います。HTTP クライアントとしてのあなたの役割は、HTTP サーバーが以前に送信した Cookie を送り返すことだけです (ドメイン、有効期限などのパラメーターを考慮して)。

于 2012-06-19T08:29:00.367 に答える