2011-04-20 80 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]