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?
Il fait écho aux données utilisées dans votre demande pour l’un des types suivants:
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."
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.
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.
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]
Webhook Tester est un excellent outil: https://webhook.site ( GitHub )
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.
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";
}
?>
https://www.mockable.io . Il a la particularité d’obtenir des points de terminaison sans connexion (compte temporaire 24h)
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":{"...
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
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.
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 '}
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);
});
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();
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();
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.)