接受GET / Post調用的HTTP測試服務器


Answers

http://httpbin.org/

它回應您的請求中使用的任何這些類型的數據:

Question

我需要一個實時測試服務器,它通過HTTP GET接受我對基本信息的請求,並允許我POST(即使它沒有做任何事情)。 這完全是為了測試目的。

here就是一個很好的例子

它很容易接受GET請求,但我需要一個接受POST請求的請求。

有誰知道我可以發送愚蠢的測試消息的服務器嗎?




創建一個免費的Web主機,並輸入以下代碼

 <h1>Request Headers</h1>
 <?php
 $headers = apache_request_headers();

 foreach ($headers as $header => $value) {
     echo "<b>$header:</b> $value <br />\n";
 }
 ?>



我不確定是否有人會用這麼多的痛苦來測試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','模塊','路徑','雜注','範圍','引用者', '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':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':假,'wsgi.errors':',模式'w'在0x0000000002042150>,'REMOTE_ADDR':'127.0.0.1','HTTP_ACCEPT_LANGUAGE':'en-US,en; q = 0.8',' HTTP_ACCEPT_ENCODING':'gzip,deflate,sdch,br'}










只需自己設置一個。 將此片段複製到您的網絡服務器。


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

只需發布你想要的頁面。 完成。




如果您希望本地測試服務器接受任何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]



看一看PutsReq ,它與其他類似,但它也允許你使用JavaScript編寫你想要的響應。




http://requestb.in類似於已經提到的工具,並且還有一個非常漂亮的用戶界面。

RequestBin為您提供一個URL,用於收集對它的請求,並讓您以人性化的方式檢查它們。 使用RequestBin來查看您的HTTP客戶端正在發送什麼或者檢查和調試webhook請求。

儘管截至2018年3月21日它已經停產。

由於持續的濫用,我們已經停止了公開託管的RequestBin版本,這使得網站可靠地保持非常困難。 請參閱設置您自己的自託管實例的說明。




http://ptsv2.com/

“在這裡你會找到一個服務器,它接收你想要給它的任何POST,並存儲內容供你查看。”