UrlFetchApp.fetch — требуется статус ответа HTTP

#google-apps-script #google-sheets #google-spreadsheet-api

#google-apps-script #google-sheets #google-sheets-api

Вопрос:

Я пытаюсь получить сообщение о состоянии ответа на сообщение в службу rest через:

 var response = UrlFetchApp.fetch(<url>, <params>);
  

Мне нужно описание статуса, сообщаемое сервером, которое, по-видимому, недоступно как часть объекта HttpResponse, возвращаемого методом выборки.

Я могу получить код состояния с помощью:

 response.getResponseCode();
  

Но не повезло с сообщением, связанным с ним. Я заключил вызов выборки в блок try / catch, но сообщение об ошибке, возвращаемое с помощью этого метода, является сообщением об ошибке, предоставленным службой электронных таблиц, а не исходным необработанным описанием состояния из ответа сервера.

Любые идеи о том, как получить эту информацию, приветствуются.

Комментарии:

1. Добавить тег google-apps-script?

2. Понял, готово. Спасибо!

Ответ №1:

Соответствующее сообщение от службы должно быть доступно в HTTPResponse.getContentText() . Вам нужно будет передать необязательный параметр muteHttpExceptions , установленный true в UrlFetchApp.fetch() запросе, чтобы предотвратить создание исключения.

Комментарии:

1. ‘HttpResponse.getContentText()’ ничего не возвращает, даже когда я ‘Отключаю httpexceptions’. Статус HTTP является частью HTTP-ответа, а не заголовком и не в теле.