Статьи

Посмотрите на WordPress HTTP API: wp_remote_get — Аргументы

В последних двух постах мы взяли краткий обзор функции wp_remote_get а также практическую реализацию ее использования.

Прежде чем переходить к другим аспектам WordPress HTTP API, важно точно знать, какая информация возвращается из удаленного вызова с помощью wp_remote_get чтобы вы могли полностью понимать возвращаемые данные, чтобы написать более защитный код, и писать более сложные запросы, если возникнет такая необходимость.

Итак, в этой последней статье о выполнении запросов GET мы собираемся рассмотреть именно это.


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

Во многих случаях аргументы не понадобятся, так как значений по умолчанию будет достаточно; однако, если вы работаете с расширенным API или ищете полное понимание аргументов, следующая информация должна объяснить, каков каждый из доступных аргументов, как их использовать и как они влияют на запрос. Быть сделанным.

Этот аргумент относится к типу запроса, который делается. Дело в том, что, поскольку мы используем wp_remote_get , мы явно выполняем GET .

Тем не менее, аргумент примет, GET , POST и HEAD . Если вы решите использовать последнюю версию протокола HTTP, вы также можете указать OPTIONS , PUT , DELETE , CONNECT и TRACE .

Эти конкретные методы выходят за рамки данной статьи, так как мы в основном сосредоточены на запросах GET , но я хотел бы упомянуть их все здесь для полноты.

Этот аргумент показывает, как долго запрос должен ждать, прежде чем отказаться от ожидания ответа. Значение указывается в секундах, а значение по умолчанию — пять.

Таким образом, практически вы говорите, что «инициируйте запрос и подождите пять секунд ответа. Если ответ не получен, верните ошибку».

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

Подобно аргументу timeout, это значение указывает, как долго запрос должен ждать перенаправления, прежде чем отказаться.

Дело в том, что запросы GET редко приводят к перенаправлению. Чаще всего запросы GET пытаются подключиться к URL-адресу для извлечения данных (и могут отправлять или не отправлять данные в строке запроса), а затем просто обрабатывают ответ или ошибку после завершения или истечения времени ожидания запроса.

Однако если вы планируете реализовать какой-либо механизм перенаправления, это значение можно указать в секундах. И, как и аргумент timeout, значение по умолчанию составляет пять секунд.

Это относится к используемой версии протокола HTTP. Хотя технические аспекты этого выходят за рамки данной серии, каждая версия протокола поддерживает различное количество типов запросов.

Мы рассмотрели каждый из них выше, и поскольку мы явно выполняем запросы GET с использованием wp_remote_get , то это значение не нужно изменять.

Однако, для полноты, на момент написания этой статьи протокол HTTP в настоящее время имеет версии 1.0 и 1.1. В зависимости от того, какую версию протокола поддерживает ваш сервер, вы можете использовать более широкий спектр методов.

Этот аргумент относится к возможности сделать запрос без фактического приостановления загрузки страницы или ожидания завершения запроса.

По умолчанию это значение установлено в true, так как в контексте запросов GET мы хотим дождаться возврата ответа, чтобы мы могли что-то с ним сделать; однако, если вы хорошо делаете запрос (хотя обычно это делается с помощью запроса POST ), для которого вам не нужен ответ, тогда вы можете установить для этого значения значение false.

Этот аргумент включает в себя все, что вы хотите отправить по проводам, кроме значений по умолчанию. При выполнении запроса GET лично мне еще не удалось найти причину для использования чего-либо, кроме того, что отправляется по умолчанию; однако это не означает, что вам не нужно отправлять что-то более специализированное в будущем.

Заголовки обычно состоят из информации, такой как тип контента, кодировка контента, тип MIME и так далее.

Эти конкретные ценности выходят за рамки данной статьи; однако я планирую вернуться к ним, когда мы поговорим об общих удаленных запросах. Смысл упоминания их здесь заключается в том, чтобы просто определить, что именно возможно в данной статье.

Этот аргумент прост, и любой, кто выполнил какую-либо работу с данными ответов, знает, что это в основном содержимое отправляемого запроса.

В контексте запроса GET это может состоять или не состоять из каких-либо значений. Часто запросы GET включают параметры строки запроса, которые могут служить содержимым для запроса; однако, если вам нужно указать больше информации, чем пары ключ / значение, или вам нужно явно указать место для своего контента, то это аргумент, в котором вы должны это сделать.

Наконец, если есть какие-либо файлы cookie, которые необходимо отправить вместе с вашим запросом, то это параметр, в котором вы бы их указали.

Это, очевидно, наиболее полезно в контексте запроса данных с URL-адреса, с которым вы установили какой-то сеанс или в котором некоторая информация в настоящее время находится на клиентском компьютере — как, конечно, файл cookie — и которую, вероятно, необходимо отправить через провод к серверу.

Как и во многих приведенных выше аргументах, это то, что не часто используется в запросе GET , но, тем не менее, открыто для спецификации.


Исходя из того, что мы видели до сих пор, эта статья может сделать wp_remote_get исключительно сложным, чем наш практический пример. Дело в том, что так не должно быть!

Помните, что информация, представленная здесь, предназначена для демонстрации того, что вы можете использовать при работе с этим конкретным методом API, а не то, что вам нужно использовать.

Продолжая изучать HTTP API, мы увидим эти конкретные аргументы все больше и больше; Однако они используются по-разному — и часто чаще — чем с другими методами. Тем не менее, стоит wp_remote_get них здесь, поскольку они являются частью принятых параметров wp_remote_get .