HTTP GETを介して基本情報のリクエストを受け入れ、POSTを実行できるライブテストサーバーが必要です(実際に何も実行していない場合でも)。これは完全にテスト目的です。
ここに良い例があります。GETリクエストは簡単に受け入れられますが、POSTリクエストも受け入れられるものが必要です。
誰かがダミーのテストメッセージを送信できるサーバーを知っていますか?
HTTP GETを介して基本情報のリクエストを受け入れ、POSTを実行できるライブテストサーバーが必要です(実際に何も実行していない場合でも)。これは完全にテスト目的です。
ここに良い例があります。GETリクエストは簡単に受け入れられますが、POSTリクエストも受け入れられるものが必要です。
誰かがダミーのテストメッセージを送信できるサーバーを知っていますか?
回答:
これらのタイプのいずれかのリクエストで使用されるデータをエコーします。
$ pip install httpbin gunicorn && gunicorn httpbin:app
言及されている@ user3280180 はhttpbin.org
curl -iX POST httpbin.org/post
それは200を返します
http://ptsv2.com/があります
「ここでは、提供したいPOSTを受け取り、確認できるようにコンテンツを保存するサーバーが見つかります。」
http://requestb.inは、前述のツールに似ていて、UIも非常に優れていました。
RequestBinは、それに行われたリクエストを収集し、人にやさしい方法でそれらを検査できるURLを提供します。RequestBinを使用して、HTTPクライアントが送信しているものを確認したり、Webhookリクエストを検査およびデバッグしたりします。
2018年3月21日をもって廃止されました。
悪用の継続によりサイトの信頼性を維持することが非常に困難になったため、RequestBinの公開ホストバージョンを廃止しました。自分でホストするインスタンスを設定する手順をご覧ください。
Webhook Testerはすばらしいツールです:https ://webhook.site (GitHub)
私にとって重要なのは、リクエスタのIPが表示されたことです。これは、IPアドレスをホワイトリストに登録する必要があるが、それが何であるかわからない場合に役立ちます。
New URL
ボタンをクリックしたときにサイトが作成される前に応答を編集する方法しかないと思われます。新しいURLを作成してから、応答本文を編集する方法はありますか?
任意の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
これはサーバーのstdoutに表示されます。
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]
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
nc
から netcat-openbsd
パッケージ入手可能であり、Ubuntuにプリインストールされています。
Ubuntu 18.04でテスト済み。
nc -kdl localhost 8000
ループでリッスンするため、bashは必要ありませんwhile
。ただし、nc
は応答しないため、テストクエリは非応答のタイムアウトまで待機します。
while true; do echo -e "HTTP/1.1 200 OK\n" | nc -Nl 8000; done
ncは毎回200 OKコードで応答します。
これが1つの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":{"...
無料のウェブホストを選択して、次のコードを作成します
<h1>Request Headers</h1>
<?php
$headers = apache_request_headers();
foreach ($headers as $header => $value) {
echo "<b>$header:</b> $value <br />\n";
}
?>
https://www.mockable.io。ログインなしでエンドポイントを取得できる優れた機能があります(24時間の一時アカウント)
私は、数分で実行できるオープンソースのハッキング可能なローカルテストサーバーを作成しました。新しいAPIを作成し、独自の応答を定義して、任意の方法でハッキングできます。
Githubリンク:https : //github.com/prabodhprakash/localTestingServer
そのための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);
});
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();
(注:コードにバックティック文字( `)が含まれているため、コード形式が台無しになっているため、修正方法がわかりません)
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 '、' files '、' form '、' headers '、' host '、' json '、' method '、' mimetype '、' module '、' path '、' pragma '、' range '、' referrer '、 「スキーム」、「浅い」、「ストリーム」、「url」、「値」]
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': '' '/ 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(GeckoのようなKHTML)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、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 ':'、mode 'w' at 0x0000000002042150>、 'REMOTE_ADDR': '127.0.0.1 '、' HTTP_ACCEPT_LANGUAGE ':' en-US、en; q = 0.8 '、' HTTP_ACCEPT_ENCODING ':' gzip、deflate、sdch、br '}
自分で設定してください。このスニペットをWebサーバーにコピーします。
エコー "<pre>"; print_r($ _ POST); エコー "</ pre>";
必要なものをそのページに投稿してください。できました。