¿Cómo se puede hacer una solicitud POST a un sitio sin API?

Las personas que le dicen que no responden un aspecto limitado de su pregunta. Ciertamente, puede realizar una solicitud POST a un sitio sin API, pero los resultados dependen de cómo está diseñado el sitio y de lo que está tratando de lograr.

He escrito múltiples bots que POST envían formularios a un sitio para lograr un objetivo u otro. Muchos formularios se envían utilizando el verbo POST, y muchas aplicaciones web se escriben para que POST y GET sean sinónimos de muchas rutas de solicitud. Entonces, si lo que está tratando de hacer es automatizar el envío de uno o más formularios, entonces puede hacerlo absolutamente.

Los criterios clave son:

  • Debe conocer la URL del recurso que tiene intención de PUBLICAR
  • Puede que tenga que especificar una serie de encabezados para que la POST funcione, como por ejemplo:
    • Árbitro HTTP
    • Cookies HTTP

La forma más fácil de lograr este objetivo es usar curl . Puede llamar a curl desde una línea de comando o mediante varias API. La mayoría de los idiomas también tienen marcos HTTP que puede usar si sus necesidades son más sofisticadas de lo que curl puede lograr.

Desde una línea de comando, debería especificar:

curl -X POST -d

Puede obtener más información sobre el comando curl aquí.

No. Al menos si mira la fuente de las páginas, el sitio sirve para ver cualquier código JS / jQuery que esté haciendo una solicitud POST. Después, puede intentar hacer esa misma solicitud y ver si va a obtener una respuesta.

Incluso eso, puede encontrar SAP (Política del mismo origen) que bloqueará su solicitud. Mire aquí Política del mismo origen y CORS (intercambio de recursos de origen cruzado)

No puedes. Si un sitio no tiene una API, no hay forma de que procese la solicitud POST. El servidor simplemente ignorará la POST porque no tiene una acción configurada para manejar las POST. Por lo tanto, debe agregar una ruta POST al segundo sitio (es decir, configurarlo para que alguna ruta como POST / thing /: id haga algo) o está atascado.