UrlFetchApp игнорирует параметры запроса GET - PullRequest
0 голосов
/ 29 января 2019

При попытке выполнить запрос GET с помощью Auth с использованием UrlFetchApp выполняется следующее:

Вот что у меня есть:

function getAllProducts() { 
  const key = "MY KEY";
  const secret = "MY SECRET";

  const options = {
    "headers": {
      "Authorization": "Basic " + Utilities.base64Encode(key + ":" + secret),
      "Cache-Control": "no-cache", // This didn't seem to matter
      "Pragma": "no-cache" // This didn't seem to matter either
    }
  };

  const url = 'https://www.my-domain/wp-json/wc/v3/products?per_page=1&page=1'; // Seems to just be ignoring these?!?!?!?
  Logger.log(url); // This logs the correct url with params

  return callAPI(url, options); 
}

function callAPI(url, options) {
  const response = UrlFetchApp.fetch(url, options); // After first call I can just remove options and it'll work without Auth?!?!?
  const jsonResponse = response.getContentText();
  const data = JSON.parse(jsonResponse);

  return data;
}

В итоге:

  • Я получаю ответ, как будто я передал его без параметров запроса вообще.
  • После однократного запуска я могу даже удалить options из .fetch(url, options),и до сих пор дает тот же ответ.Так что он явно что-то кеширует - но это не объясняет игнорирование параметров запроса.
  • Когда я пытаюсь сделать это с помощью эквивалентной команды curl, она работает точно так же, как и ожидалось.
  • Я могу только воспроизвестиэта проблема «игнорирования параметров» для этого, поэтому я использую API WooCommerce, если это помогает, но это действительно не должно быть, учитывая, что команда curl работает.

Вот скручивание для ref:

curl https://www.my-domain.co.za/wp-json/wc/v3/products?per_page=1 -u <KEY>:<SECRET>

Мне бы очень хотелось помочь - действительно, потяну за волосы!

...