protocolo - php cabeceras http
Servidor de prueba HTTP que acepta solicitudes GET/POST (13)
Necesito un servidor de prueba en vivo que acepte mis solicitudes de información básica a través de HTTP GET y también me permite realizar POST (incluso si realmente no está haciendo nada). Esto es totalmente para fines de prueba.
Un buen ejemplo está here . Fácilmente acepta solicitudes GET, pero también necesito una que acepte solicitudes POST.
¿Alguien sabe de un servidor al que también pueda enviar mensajes de prueba falsos?
Aquí hay un eco de Postman: https://docs.postman-echo.com/
ejemplo:
curl --request POST /
--url https://postman-echo.com/post /
--data ''This is expected to be sent back as part of response body.''
respuesta:
{"args":{},"data":"","files":{},"form":{"This is expected to be sent back as part of response body.":""},"headers":{"host":"postman-echo.com","content-length":"58","accept":"*/*","content-type":"application/x-www-form-urlencoded","user-agent":"curl/7.54.0","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":{"...
Crear elegir un host web gratuito y poner el siguiente código
<h1>Request Headers</h1>
<?php
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "<b>$header:</b> $value <br />/n";
}
?>
Eche un vistazo a PutsReq , es similar a los demás, pero también le permite escribir las respuestas que desee con JavaScript.
"Aquí encontrará un servidor que recibe cualquier POST que desee darle y almacena los contenidos para que los revise".
He creado un servidor de prueba local hackeable de código abierto que puede ejecutar en minutos. Puede crear nuevas API, definir su propia respuesta y piratearla de la forma que desee.
Enlace de Github : https://github.com/prabodhprakash/localTestingServer
No estoy seguro si alguien tomaría tanto dolor para probar las llamadas GET y POST. Tomé el módulo de Python Flask y escribí una función que hace algo similar a lo que @Robert compartió.
from flask import Flask, request
app = Flask(__name__)
@app.route(''/method'', methods=[''GET'', ''POST''])
@app.route(''/method/<wish>'', methods=[''GET'', ''POST''])
def method_used(wish=None):
if request.method == ''GET'':
if wish:
if wish in dir(request):
ans = None
s = "ans = str(request.%s)" % wish
exec s
return ans
else:
return ''This wish is not available. The following are the available wishes: %s'' % [method for method in dir(request) if ''_'' not in method]
else:
return ''This is just a GET method''
else:
return "You are using POST"
Cuando ejecuto esto, esto sigue:
C:/Python27/python.exe E:/Arindam/Projects/Flask_Practice/first.py
* Restarting with stat
* Debugger is active!
* Debugger PIN: 581-155-269
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Ahora probemos algunas llamadas. Estoy usando el navegador.
Esto es solo un método GET
http://127.0.0.1:5000/method/NotCorrect
Este deseo no está disponible. Los siguientes son los deseos disponibles: [''aplicación'', ''args'', ''autorización'', ''modelo'', ''conjunto de caracteres'', ''cerrar'', ''cookies'', ''datos'', ''fecha'', ''punto final'', ''ambiente '','' archivos '','' formulario '','' encabezados '','' host '','' json '','' método '','' mimetype '','' módulo '','' ruta '','' pragma '','' rango '','' referente '', ''esquema'', ''superficial'', ''flujo'', ''url'', ''valores'']
http://127.0.0.1:5000/method/environ
{''wsgi.multiprocess'': Falso, ''HTTP_COOKIE'': ''csrftoken = YFKYYZl3DtqEJJBwUlap28bLG1T4Cyuq'', ''SERVER_Pare´Porce_empot_empotea_for_placer_empezas_empotea'' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' '''' ''` ''/ method / environ'', ''SERVER_PROTOCOL'': ''HTTP / 1.1'', ''QUERY_STRING'': '''', ''werkzeug.server.shutdown'':, ''HTTP_USER_AGENT'': ''Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 54.0.2840.71 Safari / 537.36 '','' HTTP_CONNECTION '':'' keep-alive '','' SERVER_NAME '':'' 127.0.0.1 '','' REMOTE_PORT '': 49569,'' wsgi.url_scheme '':'' http '','' SERVER_PORT '':'' 5000 '','' werkzeug.request '':,'' wsgi.input '':,'' HTTP_HOST '':'' 127.0.0.1:5000 '','' wsgi.multithread '': False,'' HTTP_UPGRADE_INSECURE_REQUESTS '':'' 1 '','' HTTP_ACCEPT '':'' texto / html, aplicación / xhtml + xml, aplicación / xml; q = 0.9, imagen / webp, / ; q = 0.8 '','' wsgi.version '': (1, 0),'' wsgi.run_once '': False,'' wsgi.errors '':'', modo ''w'' en 0x0000000002042150>, ''REMOTE_ADDR'': ''127.0.0.1'', ''HTTP_ACCEPT_LANGUAGE'': ''en-US, en; q = 0.8'', '' HTTP_ACCEPT_ENCODING '':'' gzip, deflate, sdch, br ''}
Sólo configura uno tú mismo. Copie este fragmento a su servidor web.
echo "<pre>"; print_r($_POST); echo "</pre>";
Solo publica lo que quieras en esa página. Hecho.
Si desea un servidor de prueba local que acepte cualquier URL y simplemente descargue la solicitud en la consola, puede usar el nodo:
const http = require("http");
const hostname = "0.0.0.0";
const port = 3000;
const server = http.createServer((req, res) => {
console.log(`/n${req.method} ${req.url}`);
console.log(req.headers);
req.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
res.statusCode = 200;
res.setHeader("Content-Type", "text/plain");
res.end("Hello World/n");
});
server.listen(port, hostname, () => {
console.log(`Server running at http://localhost:${port}/`);
});
Guárdelo en un archivo ''echo.js'' y ejecútelo de la siguiente manera:
$ node echo.js
Server running at http://localhost:3000/
A continuación, puede enviar los datos:
$ curl -d "[1,2,3]" -XPOST http://localhost:3000/foo/bar
que se mostrará en la salida estándar del servidor:
POST /foo/bar
{ host: ''localhost:3000'',
''user-agent'': ''curl/7.54.1'',
accept: ''*/*'',
''content-length'': ''7'',
''content-type'': ''application/x-www-form-urlencoded'' }
BODY: [1,2,3]
Webhook Tester es una gran herramienta: https://webhook.site ( GitHub )
Importante para mí, mostró la dirección IP del solicitante, lo cual es útil cuando necesita agregar una dirección IP a la lista blanca pero no está seguro de cuál es.
Se hace eco de los datos utilizados en su solicitud para cualquiera de estos tipos:
- http://httpbin.org/ip Devoluciones IP de origen.
- http://httpbin.org/user-agent Devuelve usuario-agente.
- http://httpbin.org/headers Devuelve el encabezado dict.
- http://httpbin.org/get Devuelve datos GET.
- http://httpbin.org/post Devuelve datos POST.
- http://httpbin.org/put Devuelve datos PUT.
- http://httpbin.org/delete Devuelve los datos DELETE
- http://httpbin.org/gzip Devuelve datos codificados en gzip.
- http://httpbin.org/status/:code Devuelve el código de estado HTTP dado.
- http://httpbin.org/response-headers?key=val Devuelve los encabezados de respuesta dados.
- http://httpbin.org/redirect/:n 302 Redirecciona n veces.
- http://httpbin.org/relative-redirect/:n 302 Redirecciones relativas n veces.
- http://httpbin.org/cookies Devuelve datos de cookies.
- http://httpbin.org/cookies/set/:name/:value Establece una cookie simple.
- http://httpbin.org/basic-auth/:user/:passwd Desafía la autenticación HTTPBasic.
- http://httpbin.org/hidden-basic-auth/:user/:passwd 404''d BasicAuth.
- http://httpbin.org/digest-auth/:qop/:user/:passwd Desafía la autenticación del resumen HTTP.
- http://httpbin.org/stream/:n Streams n – 100 líneas.
- http://httpbin.org/delay/:n Los retardos responden entre n y 10 segundos.
https://www.mockable.io . Tiene una buena característica de obtener puntos finales sin inicio de sesión (cuenta temporal de 24 horas)
http://requestb.in era similar a las herramientas ya mencionadas y también tenía una interfaz de usuario muy buena.
RequestBin le proporciona una URL que recopilará las solicitudes que se le hagan y le permitirá inspeccionarlas de una manera amigable para el ser humano. Use RequestBin para ver qué está enviando su cliente HTTP o para inspeccionar y depurar solicitudes de webhook.
Aunque se ha suspendido a partir del 21 de marzo de 2018.
Hemos descontinuado la versión pública de RequestBin debido al abuso continuo que hizo muy difícil mantener el sitio de manera confiable. Por favor, consulte las instructions para configurar su propia instancia auto-alojada.
servidor de prueba local de una sola línea nc
Configure un servidor de prueba local en una línea bajo Linux:
while true; do printf '''' | nc -l localhost 8000; done
Fabricante de solicitud de muestra en otro shell:
wget http://localhost:8000
luego en el primer shell ve aparecer la solicitud que se hizo:
GET / HTTP/1.1
User-Agent: Wget/1.19.4 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: localhost:8000
Connection: Keep-Alive
nc
está ampliamente disponible y preinstalado en Ubuntu.
Probado en Ubuntu 18.04.