Есть ли способ проверить, существует ли POST-URL? - PullRequest
2 голосов
/ 16 февраля 2010

Есть ли способ определить, существует ли конечная точка POST без фактической отправки запроса POST?

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

Ответы [ 4 ]

6 голосов
/ 16 февраля 2010

Отправка запроса OPTIONS может работать


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

ПРЕДУПРЕЖДЕНИЕ: Это должно быть идемпотентом, но несовместимый сервер может делать очень плохие вещи

OPTIONS Возвращает методы HTTP, которые сервер поддерживает для указанного URL. Это можно использовать для проверки работоспособности веб-сервера, запрашивая «*» вместо определенного ресурса.

Подробнее здесь

3 голосов
/ 16 февраля 2010

Это невозможно по определению.

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

Лучшее, что вы можете сделать, это отправить GET и посмотреть, что произойдет; однако это приведет как к ложному срабатыванию, так и к ложному отрицанию.

1 голос
/ 16 февраля 2010

Вы можете отправить запрос HEAD, если сервер, на который вы звоните, его поддерживает - ответ обычно будет намного меньше, чем GET.

0 голосов
/ 16 февраля 2010

Есть ли конечная точка = скрипт? Это было немного странно.

Прежде всего, я хотел бы указать, зачем вам отправлять сообщения куда-либо, если их нет? Кажется немного глупым?

В любом случае, если в вашем POST-URL действительно есть какой-то элемент неопределенности, вы можете использовать cURL, а затем установить опцию заголовка в ответе cURL. Я хотел бы предложить, что если вы сделаете это, вы сохраните все проверенные POST, если есть вероятность, что URL POST будет использоваться снова.

Вы можете отправить весь свой POST одновременно с выполнением CURL, а затем проверить, не произошла ли его ошибка.

Я думаю, что вы, вероятно, сами ответили на этот вопрос в своих тегах своего вопроса с помощью cURL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...