POST-запрос и ошибка 405 в скрипте Google Apps - PullRequest
0 голосов
/ 06 декабря 2018

У меня проблемы с заголовками в ГАЗЕ.Я использую API, который требует Cookie для запросов POST.Когда я пробую его с Почтальоном, он работает, но со сценарием я все еще получаю ошибку 405: /

Прежде всего, я делаю запрос на вход в систему, который возвращает cookie, как этот: JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72

Затем я создаю запрос POST следующим образом:

function createObject(body, cookie) {
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'Cookie': cookie,
    'payload' : JSON.stringify(body)
  }
  var header = { 'headers': options }
  try {
   var response = UrlFetchApp.fetch("https://urlOftheAPI/create", header); 
    Logger.log('Saved one item :' + response.getResponseCode())
    return response.getResponseCode();
  } catch(err) {
    throw new Error(err); 
  }
}

Когда я регистрирую заголовок, он возвращает это:

"headers": {
    "method": "post",
    "contentType": "application/json",
    "Cookie": "JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72",
    "payload": "{\"foo\":\"bar\"}"
  }
} 

Спасибо за вашу помощь:)

РЕДАКТИРОВАТЬ

Благодаря @DimuDesign.Работает при передаче параметров в этом формате:

 var options = {
    'method': 'post',
    'contentType': 'application/json',
    'headers': {
      'cookie': 'JSESSIONID=D55B09A9076826AB6FC35B79B803C3F4; Path=/lambdapath; Secure; HttpOnly,authash=29cb2e5466f8a923da588fa55914fd72'
    },
    'payload' : JSON.stringify(body)
  }

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Я использую этот код для получения URL:

var url = 'https://api.example.com/';
var response = UrlFetchApp.fetch(url);
var data = JSON.parse(response.getContentText());
var result = data.headers.Cookie;
return result;
0 голосов
/ 06 декабря 2018

Ваш звонок на UrlFetchApp.fetch не отформатирован должным образом.Проверьте следующую справочную документацию на предмет правильного синтаксиса:

https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetch(String,Object)

Совет : headers объект является расширенным параметромoptions объект.

...