web-dev-qa-db-fra.com

Serveur de test HTTP acceptant les requêtes GET / POST

J'ai besoin d'un serveur de test en direct qui accepte mes demandes d'informations de base via HTTP GET et me permet également de POST (même si cela ne fait vraiment rien). Ceci est entièrement à des fins de test.

Un bon exemple est ici . Il accepte facilement les requêtes GET, mais il me en faut une qui accepte également les requêtes POST.

Est-ce que quelqu'un sait d'un serveur que je peux aussi envoyer des messages de test factices?

409
John Twigg

http://httpbin.org/

Il fait écho aux données utilisées dans votre demande pour l’un des types suivants:

686
Robert

Il y a http://ptsv2.com/

"Ici, vous trouverez un serveur qui reçoit tout POST que vous souhaitez lui donner et stocke le contenu que vous pourrez consulter."

112
catbot

http://requestb.in était similaire aux outils déjà mentionnés et offrait également une très belle interface utilisateur.

RequestBin vous fournit une URL qui collectera les demandes qui lui sont adressées et vous permettra de les inspecter de manière conviviale. Utilisez RequestBin pour voir ce que votre client HTTP envoie ou pour inspecter et déboguer des demandes Webhook.

Bien qu'il ait été interrompu le 21 mars 2018.

Nous avons mis fin à la version hébergée publiquement de RequestBin en raison d'abus persistants qui rendaient très difficile la gestion fiable du site. Veuillez consulter instructions pour configurer votre propre instance auto-hébergée.

38
Mikeyg36

Jetez un œil à PutsReq , il est similaire aux autres, mais il vous permet également d’écrire les réponses souhaitées à l’aide de JavaScript.

28
Pablo Cantero

Si vous voulez un serveur de test local qui accepte n'importe quelle URL et envoie simplement la demande à la console, vous pouvez utiliser le noeud:

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}/`);
});

Enregistrez-le dans un fichier 'echo.js' et exécutez-le comme suit:

$ node echo.js
Server running at http://localhost:3000/

Vous pouvez ensuite soumettre des données:

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

qui sera affiché dans la sortie standard du serveur:

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]
20
Wilfred Hughes

Webhook Tester est un excellent outil: https://webhook.site ( GitHub )

enter image description here

Important pour moi, cela montrait l'adresse IP du demandeur, ce qui est utile lorsque vous devez ajouter une adresse IP à la liste blanche, mais vous ne savez pas exactement de quoi il s'agit.

15
Patrick Quirk

nc serveur de test local à une ligne

Configurez un serveur de test local sur une ligne sous Linux:

nc -kdl localhost 8000

Exemple de création de requête sur un autre shell:

wget http://localhost:8000

ensuite, sur le premier shell, vous voyez apparaître la demande qui a été faite:

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

nc du paquet netcat-openbsd est largement disponible et pré-installé sur Ubuntu.

Testé sur Ubuntu 18.04.

Créer choisir un hébergeur gratuit et mettre le code suivant

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

 foreach ($headers as $header => $value) {
     echo "<b>$header:</b> $value <br />\n";
 }
 ?>
5
greensuisse

https://www.mockable.io . Il a la particularité d’obtenir des points de terminaison sans connexion (compte temporaire 24h)

4
Mike

Voici un écho de Postman: https://docs.postman-echo.com/

exemple:

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

réponse:

{"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":{"...
3
rogerdpack

J'ai créé un serveur de test local hackable open-source que vous pouvez exécuter en quelques minutes. Vous pouvez créer de nouvelles API, définir votre propre réponse et la pirater de la manière que vous souhaitez.

Lien Github : https://github.com/prabodhprakash/localTestingServer

2
prabodhprakash

Je ne suis pas sûr que quiconque prendrait autant de peine à tester les appels GET et POST. J'ai pris le module Python Flask et écrit une fonction qui fait quelque chose de similaire à ce que @Robert a partagé.

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"

Quand je lance ceci, ceci suit:

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)

Essayons maintenant quelques appels. J'utilise le navigateur.

http://127.0.0.1:5000/method

Ceci est juste une méthode GET

http://127.0.0.1:5000/method/NotCorrect

Ce souhait n'est pas disponible. Voici les souhaits disponibles: ['application', 'args', 'autorisation', 'blueprint', 'charset', 'close', 'cookies', 'données', 'date', 'extrémité', 'environ ',' fichiers ',' formulaire ',' en-têtes ',' hôte ',' json ',' méthode ',' type MIME ',' module ',' chemin ',' pragma ',' gamme ',' référent ', 'schéma', 'peu profond', 'ruisseau', 'url', 'valeurs']

http://127.0.0.1:5000/method/environ

{'wsgi.multiprocess': False, 'HTTP_COOKIE': 'csrftoken = YFKY - Werkzeug/0.12.2', '; '/ méthode/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, comme 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 ': Faux,' HTTP_UPGRADE_INSECURE_REQUESTS ':' 1 ',' HTTP_ACCEPT ':' text/html, application/xhtml + xml, application/xml; q = 0,9, image/webp, /; q = 0,8 ',' wsgi.version ': (1, 0),' wsgi.run_once ': False,' wsgi.errors ':', mode 'w' à 0x0000000002042150>, 'REMOTE_ADDR': '127.0.0.1', 'HTTP_ACCEPT_LANGUAGE': ' en-US, en; q = 0.8 ',' HTTP_ACCEPT_ENCODING ':' gzip, deflate, sdch , br '}

1

Vous n'aurez peut-être besoin d'aucun site Web pour cela, ouvrez simplement le navigateur, appuyez sur F12 pour accéder aux outils de développement> console, puis écrivez dans la console du code JavaScript pour le faire.

Ici, je partage quelques moyens pour y parvenir:

Pour la requête GET: * .Utilisant jQuery:

$.get("http://someurl/status/?messageid=597574445", function(data, status){
    console.log(data, status);
  });

Pour la demande POST: 1. Utilisation de jQuery $ .ajax:

var url= "http://someurl/",
        api_key = "6136-bc16-49fb-bacb-802358",
        token1 = "Just for test",
        result;
    $.ajax({
          url: url,
          type: "POST",
          data: {
            api_key: api_key,
            token1: token1
          },
        }).done(function(result) {
                console.log("done successfuly", result);
        }).fail(function(error) {

          console.log(error.responseText, error);

        });
  1. Avec jQuery, ajoutez et soumettez

     var merchantId = "AA86E",
            token = "4107120133142729",
            url = "https://payment.com/Index";
    
        var form = `<form id="send-by-post" method="post" action="${url}">
                                    <input id="token" type="hidden" name="token" value="${merchantId}"/>
                                    <input id="merchantId" name="merchantId" type="hidden" value="${token}"/>
                                    <button type="submit" >Pay</button>
                        </div>
                    </form> `; 
        $('body').append(form);
        $("#send-by-post").submit();//Or $(form).appendTo("body").submit();
    
    1. Utilisation de JavaScript pur:

    var api_key = "73736-bc16-49fb-bacb-643e58", recipient = "095552565", token1 = "4458", url = 'http://smspanel.com/send/';

var form = `<form id="send-by-post" method="post" action="${url}"> <input id="api_key" type="hidden" name="api_key" value="${api_key}"/> <input id="recipient" type="hidden" name="recipient" value="${recipient}"/> <input id="token1" name="token1" type="hidden" value="${token1}"/> <button type="submit" >Send</button> </div> </form>`;

document.querySelector("body").insertAdjacentHTML('beforeend',form);
document.querySelector("#send-by-post").submit();
  1. Ou même en utilisant ASP.Net:

    var url = " https://Payment.com/index "; Response.Clear (); var sb = new System.Text.StringBuilder ();

    sb.Append (""); sb.AppendFormat (""); sb.AppendFormat ("", url); sb.AppendFormat ("", "C668"); sb.AppendFormat ("", "22720281459"); sb.Append (""); sb.Append (""); sb.Append (""); Response.Write (sb.ToString ()); Response.End ();

(Remarque: comme j'ai le caractère backtick (`) dans mon code, le format du code est ruiné, je ne sais pas comment le corriger.)

0
Mohammad lm71