• Официальный сайт SDK
  • Сайт с примерами кода

Обзор

Приложения App Engine могут взаимодействовать с другими web-приложениями или выполнять запросы к сторонним ресурсам Интернета через интерфейс загрузки URL (Fetch URL). Это очень полезный механизм для доступа к внешним данным, который позволяет обмениваться информацией с web сервисами и каналами RSS.

Функция urlfetch.fetch() выполняет HTTP запрос.

CmZyb20gZ29vZ2xlLmFwcGVuZ2luZS5hcGkgaW1wb3J0IHVybGZldGNoCnVybCA9ICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIgpyZXN1bHQgPSB1cmxmZXRjaC5mZXRjaCh1cmwpCmlmIHJlc3VsdC5zdGF0dXNfY29kZSA9PSAyMDA6CmRvU29tZXRoaW5nV2l0aFJlc3VsdChyZXN1bHQuY29udGVudCkK=

fetch() поддерживает запросы HTTP пяти типов: GET, POST, HEAD, PUT и DELETE. Ваш запрос может включать дополнительные заголовки протокола HTTP и содержимое параметров методов POST и PUT. К примеру, чтобы отправить данные, введенные в форму, обработчик использует метод POST:

CmltcG9ydCB1cmxsaWIKZm9ybV9maWVsZHMgPSB7CiJmaXJzdF9uYW1lIjogIkFsYmVydCIsCiJsYXN0X25hbWUiOiAiSm9obnNvbiIsCiJlbWFpbF9hZGRyZXNzIjogIkFsYmVydC5Kb2huc29uQGV4YW1wbGUuY29tIgp9CmZvcm1fZGF0YSA9IHVybGxpYi51cmxlbmNvZGUoZm9ybV9maWVsZHMpCnJlc3VsdCA9IHVybGZldGNoLmZldGNoKHVybD11cmwsCnBheWxvYWQ9Zm9ybV9kYXRhLAptZXRob2Q9dXJsZmV0Y2guUE9TVCwKaGVhZGVycz17J0NvbnRlbnQtVHlwZSc6CidhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnfSkK=

Все запросы к серверам ограничены портами 80 (протокол http) и 443 (протокол https). Все остальные порты не поддерживаются.

Процесс загрузки данных по URL является синхронным: выполнение функции fetch() не будет прервано, пока не будет получен ответ от удаленного сервера.

Примечание: В связи с накладываемым ограничением по необходимости подготовки приложением ответа на запрос пользователя в течении нескольких секунд, выполнение загрузки URL от сервера с медленным подключением может привести к выдаче ошибки вашим приложением. На сегодняшний день не существует возможности установить таймаут процессу загрузки URL.

Единственным способом обойти это ограничение является использование на стороне пользователя кода JavaScript, который и будет осуществлять обработку загрузки URL через отдельный метод вашего приложения и реагировать на неудачную попытку.

Платформа App Engine использует для транзита запросов прокси сервер, совместимый с протоколом HTTP/1.1. Прокси также может выполнять безопасные запросы по протоколу HTTPS, однако он не проверяет подлинность сервера, с которым соединяется. Поэтому он принимает все SSL сертификаты, включая самоподписанные.

Функция fetch() позволяет загружать документы с учетом получаемых от сервера указаний на перенаправления ссылки, которые могут повторяться до 5 раз.