我需要一个实时测试服务器,它通过HTTP GET接受我对基本信息的请求,并允许我进行POST(即使它真的没有做任何事情)。这完全是出于测试目的。
一个很好的例子是here。它很容易接受GET请求,但我也需要一个接受POST请求的请求。
有没有人知道我可以发送虚拟测试消息的服务器?
答案 0 :(得分:668)
它回应了您的请求中使用的任何类型的数据:
答案 1 :(得分:105)
“在这里,您将找到一个服务器,它接收您希望提供的任何POST并存储内容供您查看。”
答案 2 :(得分:36)
http://requestb.in 与已经提到过的工具类似,也有一个非常好的用户界面。
RequestBin为您提供了一个URL,用于收集向其发出的请求,并让您以人性化的方式检查它们。 使用RequestBin查看HTTP客户端正在发送的内容或检查和调试webhook请求。
虽然它已于2018年3月21日停止使用。
由于持续滥用,我们已停止公开托管的RequestBin版本,因此很难确保网站的可靠性。有关设置您自己托管的实例的信息,请参阅instructions。
答案 3 :(得分:28)
查看PutsReq,它与其他人类似,但它也允许您使用JavaScript编写所需的回复。
答案 4 :(得分:20)
如果您希望本地测试服务器接受任何URL并将请求转储到控制台,您可以使用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}/`);
});
将其保存在文件'echo.js'中并按如下方式运行:
$ node echo.js
Server running at http://localhost:3000/
然后您可以提交数据:
$ curl -d "[1,2,3]" -XPOST http://localhost:3000/foo/bar
将显示在服务器的标准输出中:
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]
答案 5 :(得分:11)
答案 6 :(得分:5)
创建选择一个免费的Web主机并输入以下代码
<h1>Request Headers</h1>
<?php
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "<b>$header:</b> $value <br />\n";
}
?>
答案 7 :(得分:4)
https://www.mockable.io。它具有很好的功能,无需登录即可获得端点(24小时临时帐户)
答案 8 :(得分:4)
nc
一线本地测试服务器
在Linux下一行安装本地测试服务器:
nc -kdl localhost 8000
在另一个shell上的示例请求生成器:
wget http://localhost:8000
然后在第一个外壳上,您会看到发出的请求:
GET / HTTP/1.1
User-Agent: Wget/1.19.4 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: localhost:8000
Connection: Keep-Alive
nc
包中的 netcat-openbsd
广泛可用,并预装在Ubuntu上。
在Ubuntu 18.04上测试。
答案 9 :(得分:2)
我创建了一个开源的hackable本地测试服务器,您可以在几分钟内运行。您可以创建新的API,定义自己的响应并以任何方式进行破解。
Github Link :https://github.com/prabodhprakash/localTestingServer
答案 10 :(得分:2)
您可以在本地(在docker或裸机上)实际运行Ken Reitz's httpbin
服务器:
https://github.com/postmanlabs/httpbin
docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin
## 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
现在,您的个人httpbin实例正在http://0.0.0.0:8000上运行(对您所有的LAN都可见)
答案 11 :(得分:2)
这里是一个邮递员回声: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.'
响应:
{"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":{"...
答案 12 :(得分:1)
我不知道为什么这里的所有答案都很难完成非常简单的工作!
在HTTP上有请求时,实际上客户端将向服务器(read about what is a HTTP_MESSAGE发送HTTP_MESSAGE,您只需 2个简单步骤即可构建服务器:
1。安装netcat:
在许多基于unix的系统中,您已经安装了此程序,如果您使用的是google,则安装过程非常简单,您只需要一个nc.exe文件,然后复制该nc.exe的路径即可。归档到您的路径environmet变量,并使用nc -h
2。制作一个正在localhost:12345上监听的服务器:
只需在您的终端上输入nc -l -p 12345
,一切就完成了! (在Mac nc -l 12345
tnx Silvio Biasiol中)
如果您是js开发人员或制作自己的http://localhost:12345
或在html文件中创建表单,那么现在您有一个正在监听axios.post('http://localhost:12345', { firstName: 'Fred' })
的服务器,向xhr
发出发布请求并将其提交给服务器,例如<form action="http://localhost:12345" method="post">
或通过curl
或wget
等发出请求,然后检查您的终端,原始HTTP_MESSAGE应该出现在终端上,您可以开始快乐的黑客活动;)
答案 13 :(得分:1)
我不确定是否有人会为测试GET和POST调用而烦恼。我使用了Python Flask模块并编写了一个类似于@Robert共享的函数。
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"
当我运行时,接下来是:
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)
现在让我们尝试一些电话。我正在使用浏览器。
这只是一个GET方法
http://127.0.0.1:5000/method/NotCorrect
这个愿望不可用。以下是可用的愿望:['application','args','authorization','blueprint','charset','close','cookies','data','date','endpoint','environ ','''','form','header','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','SCRIPT_NAME':'','REQUEST_METHOD':'GET',' PATH_INFO':'/ 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,与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':错误,'HTTP_UPGRADE_INSECURE_REQUESTS ':'1','HTTP_ACCEPT':'text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp, / ; q = 0.8','wsgi。版本':( 1,0),'wsgi.run_once':错误,'wsgi.errors':',模式'w'位于0x0000000002042150&gt;,'REMOTE_ADDR':'127.0.0.1','HTTP_ACCEPT_LANGUAGE':'en- US,en; q = 0.8','HTTP_ACCEPT_ENCODING':'gzip,deflate,s dch,br'}
答案 14 :(得分:0)
您可能不需要任何网站,只需打开浏览器,按F12
即可访问开发人员工具>控制台,然后在控制台中编写一些JavaScript代码即可。
在这里,我分享一些实现此目的的方法:
对于GET请求: *。使用jQuery:
$.get("http://someurl/status/?messageid=597574445", function(data, status){
console.log(data, status);
});
对于POST请求: 1.使用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);
});
使用jQuery,添加并提交
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();
甚至使用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();
(注意:由于我的代码中有反引号字符(`),所以代码格式已损坏,所以我不知道如何纠正它)
答案 15 :(得分:0)
如果您需要或想要具有以下内容的简单HTTP服务器:
我已经在PyPI上出色的SimpleHTTPAuthServer之上构建了一个。这增加了对POST请求的处理: https://github.com/arielampol/SimpleHTTPAuthServerWithPOST
否则,所有其他公开可用的选项都已经非常好且健壮。
答案 16 :(得分:-12)
自己设置一个。将此代码段复制到您的网络服务器。
echo "<pre>"; print_r($_POST); echo "</pre>";
只需将您想要的内容发布到该页面即可。完成。