2011-04-20 178 views
297

我需要一个实时测试服务器,它通过HTTP GET接受我对基本信息的请求,并且还允许我POST(即使它没有做任何事情)。这完全是为了测试目的。接受GET/Post调用的HTTP测试服务器

一个很好的例子是here

很容易接受GET请求,但我需要一个接受POST请求。

有谁知道我也可以发送愚蠢的测试消息的服务器?

+0

你想让它记录POST吗? – 2011-04-20 04:23:42

+2

这就是你想要的,我想。 https://github.com/jar-o/dumdum无需代码 – jar 2017-05-22 15:33:57

回答

-13

只需设置一个自己。将此片段复制到您的网络服务器。

 

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

只需发布你想要的页面。完成。

+3

关键是不必使用服务器。例如,如果你想发布一个问题到SO,但是你的服务器可能不会很久。 OP要求提供永久性的东西,比如jsfiddle,可以用来测试或展示帖子。 – abalter 2015-06-26 19:12:27

61

http://www.posttestserver.com/

“在这里,你会发现它接收您想给它的任何POST和存储的内容供您查看的服务器。”

+4

如果您运行的是从无法访问其内部的远程服务器触发的请求,则这一项功能非常好,因为它将保存稍后检索的请求。 – ozmo 2012-08-21 12:20:42

+2

也可以尝试http://requestb.in - 它也保存了以后检查的请求。 – 2015-03-04 17:03:29

+0

谢谢你@catbot,这是甜美的 – 2015-04-17 08:58:10

538

http://httpbin.org/

呼应在您的要求用于任何这些类型的数据:

+86

http://stackoverflow.com/users/120004/kenneth-reitz写了这项服务。因此,随意地认为他像我一样是一位了不起的开发人员。 – Robert 2013-12-18 23:34:50

+2

针对执行链接的+1 – 2014-04-08 02:23:43

+0

它返回描述您所做请求的JSON。 – tbraun 2014-07-25 10:01:09

35

http://requestb.in类似于已经提到的工具,但有一个非常漂亮的用户界面。

RequestBin为您提供一个URL,它将收集对它的请求并让您以人性化的方式检查它们。 使用RequestBin查看您的HTTP客户端正在发送什么或检查和调试webhook请求。

+0

[PutsReq](http:// putsreq。com /)也类似于RequestBin,但它允许你用JS编写你想要的响应。 – 2015-08-29 21:31:35

22

看看PutsReq,它与其他类似,但它也允许你用JavaScript编写你想要的回复。

+2

伟大的网站 - 它似乎是最直观的,并有良好的文档,可帮助您检查请求类型,标题,表单数据等东西。 – AlbatrossCafe 2016-03-09 23:49:24

2

https://www.mockable.io。它具有很好的功能,无需登录即可获取端点(24小时临时帐户)

+0

同意有很好的功能,您可以设置您需要的特定响应。即200/301,401等。如果你想模拟一个错误,或者在我的情况下,如果在Angular中使用一个决议时没有路由到一个页面,如果呈现该页面的数据还没有返回, – fidev 2017-06-01 20:53:47

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) 

现在让我们尝试一些电话。我正在使用浏览器。

http://127.0.0.1:5000/method

这仅仅是一个GET方法

http://127.0.0.1:5000/method/NotCorrect

这个愿望是不可用。以下是可用的愿望:['application','args','authorization','blueprint','charset','close','cookies','data','date','endpoint','environ '''文件','表单','标题','主机','JSON','方法','mimetype','模块','路径','杂注','范围','引用者', '方案', '浅', '流', 'URL', '值']

http://127.0.0.1:5000/method/environ

{ 'wsgi.multiprocess':假, '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':False,'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':',模式'w'在0x0000000002042150>,'REMOTE_ADDR':'127.0.0.1','HTTP_ACCEPT_LANGUAGE':'en-US,en; q = 0.8' “HTTP_ACCEPT_ENCODING”:“gzip的,放气,SDCH,BR”}

5

如果你想接受任何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}/`); 
}); 

将它保存在一个文件“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]