我需要一个实时测试服务器,它通过HTTP GET接受我对基本信息的请求,并允许我POST(即使它真的没有做任何事情).这完全是出于测试目的.
一个很好的例子是在这里.它很容易接受GET请求,但我也需要一个接受POST请求的请求.
有没有人知道我可以发送虚拟测试消息的服务器?
Rob*_*ert 708
它回应了您的请求中使用的任何这些类型的数据:
cat*_*bot 113
"在这里,您将找到一台服务器,它接收您希望提供的任何POST并存储内容供您查看."
Mik*_*g36 40
http://requestb.in类似于已经提到的工具,也有一个非常好的用户界面.
RequestBin为您提供了一个URL,用于收集对其发出的请求,并让您以人性化的方式检查它们.使用RequestBin查看HTTP客户端正在发送的内容或检查和调试webhook请求.
虽然它已于2018年3月21日停产.
由于持续滥用,我们已停止公开托管的RequestBin版本,因此很难确保网站的可靠性.请参阅说明为建立自己的自托管的实例.
Wil*_*hes 23
如果您希望本地测试服务器接受任何URL并将请求转储到控制台,则可以使用节点:
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}/`);
});
Run Code Online (Sandbox Code Playgroud)
将其保存在文件'echo.js'中并按如下方式运行:
$ node echo.js
Server running at http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)
然后,您可以提交数据:
$ curl -d "[1,2,3]" -XPOST http://localhost:3000/foo/bar
Run Code Online (Sandbox Code Playgroud)
它将显示在服务器的标准输出中:
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]
Run Code Online (Sandbox Code Playgroud)
Cir*_*四事件 10
nc
一线本地测试服务器
在Linux下一行安装本地测试服务器:
nc -kdl localhost 8000
Run Code Online (Sandbox Code Playgroud)
另一个外壳上的样本请求制作者:
wget http://localhost:8000
Run Code Online (Sandbox Code Playgroud)
然后在第一个外壳上,您会看到发出的请求:
GET / HTTP/1.1
User-Agent: Wget/1.19.4 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: localhost:8000
Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)
nc
该netcat-openbsd
软件包中的广泛可用,并预装在Ubuntu上。
在Ubuntu 18.04上测试。
您可以在本地运行实际的Ken Reitz httpbin
服务器(在 docker 下或在裸机上):
https://github.com/postmanlabs/httpbin
docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin
Run Code Online (Sandbox Code Playgroud)
## install dependencies
pip3 install gunicorn decorator httpbin werkzeug Flask flasgger brotlipy gevent meinheld six pyyaml
## start the server
gunicorn -b 0.0.0.0:8000 httpbin:app -k gevent
Run Code Online (Sandbox Code Playgroud)
现在您的个人 httpbin 实例在http://0.0.0.0:8000上运行(对您的所有 LAN 可见)
我想要一个返回预定义响应的服务器,所以我发现在这种情况下使用最小的 Flask 应用程序更简单:
#!/usr/bin/env python3
# Install dependencies:
# pip3 install flask
import json
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def root():
# spit back whatever was posted + the full env
return jsonify(
{
'request.json': request.json,
'request.values': request.values,
'env': json.loads(json.dumps(request.__dict__, sort_keys=True, default=str))
}
)
@app.route('/post', methods=['GET', 'POST'])
def post():
if not request.json:
return 'No JSON payload! Expecting POST!'
# return the literal POST-ed payload
return jsonify(
{
'payload': request.json,
}
)
@app.route('/users/<gid>', methods=['GET', 'POST'])
def users(gid):
# return a JSON list of users in a group
return jsonify([{'user_id': i,'group_id': gid } for i in range(42)])
@app.route('/healthcheck', methods=['GET'])
def healthcheck():
# return some JSON
return jsonify({'key': 'healthcheck', 'status': 200})
if __name__ == "__main__":
with app.test_request_context():
app.debug = True
app.run(debug=True, host='0.0.0.0', port=8000)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么这里的所有答案都使一项非常简单的工作变得非常困难!
当 HTTP 上有请求时,实际上客户端会向服务器发送 HTTP_MESSAGE(了解什么是 HTTP_MESSAGE ),您只需 2 个简单的步骤即可创建服务器:
安装netcat:
在许多基于 UNIX 的系统中,你已经安装了这个,如果你有 Windows,只需 google 一下,安装过程非常简单,你只需要一个nc.exe文件,然后你应该将此 nc.exe 文件的路径复制到你的路径环境变量并检查一切是否正常nc -h
创建一个正在侦听的服务器localhost:12345
:
nc -l -p 12345
只需在终端上输入,一切就完成了!(在 mac nc -l 12345
tnx Silvio Biasiol中)
现在你有一个正在监听的服务器(不是真正的Web服务器,只是一个网络监听器)http://localhost:12345
,例如你可以使用axios发出post请求如果你是一个js开发人员:
axios.post('http://localhost:12345', { firstName: 'Fred' })
Run Code Online (Sandbox Code Playgroud)
或者自己制作xhr
或在 HTML 文件中制作表单并将其提交到服务器,等等。喜欢:
<form action="http://localhost:12345" method="post">
Run Code Online (Sandbox Code Playgroud)
curl
或者使用或等发出请求。wget
然后检查您的终端,原始 HTTP_MESSAGE 应该出现在您的终端上,您就可以开始愉快的黑客攻击了;)
创建选择一个免费的Web主机并输入以下代码
<h1>Request Headers</h1>
<?php
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "<b>$header:</b> $value <br />\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
这是一个邮递员回声:https : //docs.postman-echo.com/
例:
curl --request POST \
--url https://postman-echo.com/post \
--data 'This is expected to be sent back as part of response body.'
Run Code Online (Sandbox Code Playgroud)
响应:
{"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":{"...
Run Code Online (Sandbox Code Playgroud)
小智 5
另一种提供一些定制且易于使用(无需安装、注册)的工具是Beeceptor。您创建一个端点,向其发出初始请求,然后可以调整响应。
Beeceptor 不仅仅是一个 HTTP 检查工具。你还可以做更多:
HTTP拦截和检查:
模拟服务器- 发送所需的 HTTP 响应。您可以定义规则来根据路由/路径匹配请求。Beeceptor 的模拟模板非常强大,允许您选择查询参数并发送响应负载。
反向代理:MITM 或反向代理,可让您将传入请求路由到目标服务器并检查流量。在调试未记录在应用程序日志中的有效负载时,这非常方便。
归档时间: |
|
查看次数: |
341854 次 |
最近记录: |