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을 반환합니다.
"여기에는 POST를 제공하고 검토 할 내용을 저장하는 서버가 있습니다."
http://requestb.in 은 이미 언급 한 도구와 유사하며 UI도 훌륭했습니다.
RequestBin은 요청을 수집하여 사용자에게 친숙한 방식으로 검사 할 수있는 URL을 제공합니다. RequestBin을 사용하여 HTTP 클라이언트가 무엇을 전송하는지 확인하거나 웹 후크 요청을 검사 및 디버그하십시오.
2018 년 3 월 21 일부로 폐지되었지만
지속적인 악용으로 인해 공개적으로 호스팅되는 RequestBin 버전을 중단하여 사이트를 안정적으로 유지하기가 매우 어려웠습니다. 자체 자체 호스팅 인스턴스 설정에 대한 지침 을 참조하십시오 .
PutsReq를 살펴보십시오 . 다른 것들과 비슷하지만 JavaScript를 사용하여 원하는 응답을 작성할 수도 있습니다.
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에서 한 줄로 로컬 테스트 서버를 설정하십시오.
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
패키지를 널리 사용하고 우분투에 사전 설치되어 있습니다.
우분투 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 코드로 응답합니다.
다음은 하나의 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
웹 사이트가 필요하지 않을 수도 있습니다. 브라우저를 열고 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 ', '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': '', '요청 _MET'D': ' '/ 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 ':', 0x0000000002042150의 'w'모드, 'REMOTE_ADDR': '127.0.0.1 ','HTTP_ACCEPT_LANGUAGE ':'en-US, en; q = 0.8 ','HTTP_ACCEPT_ENCODING ':'gzip, 수축, sdch, br '}