Servidor de teste HTTP que aceita pedidos de obtenção / publicação

Preciso de um servidor de testes ao vivo que aceite os meus pedidos de informação básica via HTTP GET e também me permita postar (mesmo que não esteja realmente a fazer nada). Isto é inteiramente para fins de teste.

um bom exemplo é aqui . Ele aceita facilmente obter pedidos, mas eu preciso de um que aceita pedidos POST também.

Alguém sabe de um servidor que eu possa enviar mensagens de teste falsas também?

 343
Author: Alexander Abakumov, 2011-04-20

13 answers

Http://httpbin.org/

Faz eco dos dados utilizados no seu pedido para qualquer um destes tipos:

 603
Author: Robert, 2012-03-19 13:22:50

, Existe http://ptsv2.com/

" Aqui você vai encontrar um servidor que recebe qualquer POST que você deseja dar e guarda o conteúdo para você rever."

 85
Author: catbot, 2018-03-19 18:00:07

Http://requestb.in era semelhante às ferramentas já mencionadas e também tinha uma UI muito agradável.

O RequestBin dá-lhe uma URL que irá recolher os pedidos que lhe forem feitos e deixá-lo inspeccioná-los de uma forma amiga do homem. Use o RequestBin para ver o que o seu cliente de HTTP está a enviar ou para inspeccionar e depurar os pedidos do webhook.

Embora tenha sido descontinuado a partir de 21 de Março de 2018.

Nós interrompemos a versão apresentada publicamente de RequestBin devido ao abuso contínuo que tornou muito difícil manter o site de forma confiável. Por favor veja instruções para configurar a sua própria instância.

 35
Author: Mikeyg36, 2018-04-05 03:17:05

Dê uma olhada em PutsReq , é semelhante aos outros, mas também permite que você escreva as respostas que deseja usando JavaScript.

 27
Author: Pablo Cantero, 2015-09-08 14:56:05

Se quiser um servidor de testes local que aceite qualquer URL e apenas envie o pedido para a consola, poderá usar o node:

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}/`);
});
Guarda - o num ficheiro eco.js ' e executá-lo da seguinte forma:
$ node echo.js
Server running at http://localhost:3000/

Pode então enviar dados:

$ curl -d "[1,2,3]" -XPOST http://localhost:3000/foo/bar

Que será mostrado no stdout do 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]
 17
Author: Wilfred Hughes, 2017-11-21 13:40:45

Criar escolha uma máquina web livre e coloque o seguinte código

 <h1>Request Headers</h1>
 <?php
 $headers = apache_request_headers();

 foreach ($headers as $header => $value) {
     echo "<b>$header:</b> $value <br />\n";
 }
 ?>
 5
Author: greensuisse, 2018-03-19 17:59:17

O teste do Webhook é uma grande ferramenta: https://webhook.local (GitHub)

enter image description here

Importante para mim, mostrou o IP do requerente, o que ajuda quando se precisa de whitelist um endereço IP, mas não se sabe o que é.
 4
Author: Patrick Quirk, 2018-07-02 13:12:41

Https://www.mockable.io . tem uma boa característica de obter pontos finais sem login (conta temporária de 24h)

 3
Author: Mike, 2017-05-02 15:09:28
Criei um servidor de testes local de código aberto que pode ser executado em minutos. Você pode criar uma nova API, definir a sua própria resposta e hackeá-la de qualquer maneira que desejar.

Ligação do Github : https://github.com/prabodhprakash/localTestingServer

 2
Author: prabodhprakash, 2016-09-29 16:28:31
Não tenho a certeza se alguém aceitaria tanta dor para testar receber e enviar chamadas. Eu peguei no módulo Python Flask e escrevi uma função que faz algo semelhante ao que @Robert compartilhou.
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"

Quando eu executar isto, isto segue:

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)

Agora vamos tentar algumas chamadas. Estou a usar o navegador.

Http://127.0.0.1:5000/method

Este é apenas um método GET

Http://127.0.0.1:5000/method/NotCorrect

Este desejo não é disponivel. Os desejos disponíveis são os seguintes: ['application', 'args', 'authorization', 'blueprint', 'charset', 'close', 'cookies', 'data', 'endpoint', 'environ', 'files', 'form', 'headers', 'host', 'json', 'method', 'mimetype', 'module', 'path', 'pragma', 'range', 'referrer', 'scheme', 'shallow', 'stream', 'url", "values"]

Http://127.0.0.1:5000/method/environ

{'wsgi.multiprocess: False, 'HTTP_COOKIE': 'csrftoken=YFKYYZl3DtqEJJBwUlap28bLG1T4Cyuq', 'SERVER_SOFTWARE': 'Werkzeug/0.12.2', 'NOME_DO_SCRIPT': ", 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/método/environ', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': ", 'werkzeug.servidor.desligamento': , 'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like 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.pedido":, " wsgi.entrada": , "HTTP_ host": "127.0.0.1: 5000", " wsgi.multithread': False, 'HTTP_UPGRADE_INSECURE_REQUESTS': '1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;p=0.9,imagem/webp,/;q=0.8', 'wsgi.versão": (1, 0), " wsgi.run_ once': False, ' wsgi.erros":", modo " w "em 0x00000002042150>, "REMOTE_ADDR": "127.0.0.1", "HTTP_ACCEPT_LANGUAGE": "en-US, en; q=0.8", "HTTP_ACEPT_ENCODING": "gzip, deflate, sdch, br"}

 1
Author: Arindam Roychowdhury, 2017-07-14 07:22:49

nc servidor de teste local de um invólucro

Configurar um servidor de teste local numa linha sob o Linux:

while true; do printf '' | nc -l localhost 8000; done

Fabricante do pedido de amostra noutra concha:

wget http://localhost:8000

Então na primeira concha você vê o pedido que foi feito aparecer:

GET / HTTP/1.1
User-Agent: Wget/1.19.4 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: localhost:8000
Connection: Keep-Alive

nc está amplamente disponível e pré-instalado no Ubuntu.

Testado em Ubuntu 18.04.

Aqui está um carteiro eco: https://docs.postman-echo.com/

Exemplo:

curl --request POST \
  --url https://postman-echo.com/post \
  --data 'This is expected to be sent back as part of response body.'

Resposta:

{"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":{"...
 0
Author: rogerdpack, 2018-10-06 03:58:18
Prepara um para ti. Copia este excerto para o seu servidor web.

echo "<pre>";
print_r($_POST);
echo "</pre>";

Basta postar o que você quer nessa página. Terminar.
 -12
Author: Captain Hawaii, 2011-04-20 04:29:17