web-dev-qa-db-ja.com

GET/POSTリクエストを受け付けるHTTPテストサーバー

私はHTTP GETを介して基本的な情報に対する私の要求を受け入れ、また私がPOSTをできるようにするライブテストサーバーが必要です(それが本当に何もしていなくても)。これは完全にテスト目的のためです。

良い例は ここ です。これは簡単にGETリクエストを受け付けますが、POSTリクエストも受け付けるものが必要です。

誰もが私がダミーのテストメッセージを送ることができることをサーバーについて知っていますか?

388
John Twigg

http://httpbin.org/ /

それはあなたのリクエストで使用されたデータをこれらのタイプのいずれかについてエコーします。

663
Robert

http://ptsv2.com/ /があります

「ここにあなたがあなたがそれを与えたいと思うPOSTを受け取り、あなたがレビューするためにその内容を保存するサーバーを見つけるでしょう。」

104
catbot

http://requestb.inはすでに述べたツールに似ていて、とてもいいUIも持っていました。

RequestBinはあなたにそれに対して行われた要求を収集し、あなたが人間に優しい方法でそれらを調べることができるようにあなたにURLを提供します。 HTTPクライアントが何を送信しているのかを確認したり、Webフック要求を検査したりデバッグしたりするには、RequestBinを使用します。

2018年3月21日に中止されましたが。

悪用され続けているため、サイトの信頼性を維持することが非常に困難になっているため、パブリックホスト版のRequestBinは中止しました。 指示 を参照してください。あなた自身の自己ホスト型インスタンスを設定します。

35
Mikeyg36

PutsReq を見てください。他のものと似ていますが、JavaScriptを使用して必要な応答を書くこともできます。

28
Pablo Cantero

任意の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]
20
Wilfred Hughes

Webhook Testerは素晴らしいツールです: https://webhook.siteGitHub

enter image description here

私にとって重要なことは、それはリクエスタのIPを示した、それはあなたがIPアドレスをホワイトリストに載せる必要があるがそれが何であるかわからないときに役に立ちます。

10
Patrick Quirk

無料のWebホストを選択して、次のコードを作成してください。

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

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

https://www.mockable.io 。ログインしなくてもエンドポイントを取得できるという優れた機能があります(24時間の一時アカウント)。

4
Mike

ncワンライナーローカルテストサーバー

Linuxでローカルテストサーバーを1行で設定します。

nc -kdl localhost 8000

別のシェル上のサンプル要求メーカー

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

netcat-openbsdパッケージのncは広く入手可能で、Ubuntuにプレインストールされています。

Ubuntu 18.04でテスト済み。

私はあなたが数分で走らせることができるオープンソースのハッキング可能なローカルテストサーバーを作成しました。あなたは新しいAPIを作成し、あなた自身の応答を定義しそしてあなたが望むあらゆる方法でそれをハックすることができます。

Githubリンク https://github.com/prabodhprakash/localTestingServer

2
prabodhprakash

誰かが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 '、' files '、' form '、' headers '、' 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': 'GET'、 'RE' '' '' '' ' '/ 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 '、' 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、deflate、sdch、br '}

これがPostmanのエコーです。 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":{"...
1
rogerdpack

そのためにWebサイトは必要ないかもしれません。ブラウザを開いて、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);

        });
  1. 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();
    
    1. 純粋なJavaScriptの使用:

    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();
  1. または、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();

(注:コード形式が台無しになったコードにバックティック文字( `)があるため、それを修正する方法がわかりません)

0
Mohammad lm71