HTTP टेस्ट सर्वर GET / POST अनुरोध स्वीकार करता है


449

मुझे एक जीवित परीक्षण सर्वर की आवश्यकता है जो HTTP GET के माध्यम से बुनियादी जानकारी के लिए मेरे अनुरोधों को स्वीकार करता है और मुझे POST की अनुमति देता है (भले ही यह वास्तव में कुछ भी नहीं कर रहा हो)। यह पूरी तरह से परीक्षण के उद्देश्यों के लिए है।

एक अच्छा उदाहरण यहाँ है । यह आसानी से GET अनुरोधों को स्वीकार करता है, लेकिन मुझे एक की आवश्यकता है जो POST अनुरोधों को भी स्वीकार करता है।

क्या किसी को सर्वर के बारे में पता है कि मैं डमी टेस्ट संदेश भी भेज सकता हूं?


2
क्या आप इसे POST लॉग करना चाहते हैं?
जारेड फरिश

4
यह वही है जो आप चाहते हैं, मुझे लगता है। github.com/jar-o/dumdum कोई कोड आवश्यक नहीं है
जार

जवाबों:


736

http://httpbin.org/

यह इनमें से किसी भी प्रकार के आपके अनुरोध में उपयोग किए गए डेटा को गूँजता है:


यह आपके द्वारा किए गए अनुरोध का वर्णन करते हुए JSON देता है।
तबरुन

4
क्या स्थानीय httpbin सर्वर बनाने की संभावना भी है?
user3280180

4
@ user3280180 $ pip install httpbin gunicorn && gunicorn httpbin:app जैसा कि बताया गया है httpbin.org
HVNSweeting है

यह सबसे अच्छा जवाब / सेवा, imo है। मैंने एक सरल कोडपेन बनाया, जिसमें दिखाया गया है कि इसका उपयोग कैसे किया जाए: codepen.io/nickleus/pen/qOjOGe
Nick Humphrey

6
@therobyouknow लिंक पर क्लिक करने से GET का प्रदर्शन होता है, लेकिन यदि आप उस url को POST करते हैं तो यह काम करता है। कोशिश करें: curl -iX POST httpbin.org/postयह एक 200. लौटाता है
रॉबर्ट

120

नहीं है http://ptsv2.com/

"यहां आपको एक सर्वर मिलेगा जो आपको किसी भी पोस्ट को प्राप्त करना चाहता है जिसे आप इसे देना चाहते हैं और आपके लिए समीक्षा के लिए सामग्री संग्रहीत करते हैं।"


7
यह वास्तव में अच्छा है यदि आप उन अनुरोधों को चला रहे हैं जो एक दूरस्थ सर्वर से शुरू होते हैं जिनके इंटर्नल तक आपकी पहुंच नहीं है, क्योंकि यह बाद में पुनर्प्राप्ति के लिए अनुरोध को बचाएगा।
ozmo

2
इसके अलावा एक अनुरोध requestb.in कोशिश कर सकते हैं - यह भी बाद में निरीक्षण के लिए अनुरोध बचाता है।
मकसीम डेविडॉव

मुझे पता है कि शाब्दिक रूप से कुछ भी इस्तेमाल किया जा सकता है ... लेकिन क्या एक "गेटटेस्टरसर्वर" है जो लंबे समय तक रहने की उम्मीद है?
२६:१६

2
Httpbin.org/put के विपरीत , यह बहुत उपयोगी प्रतिक्रिया देता है जो आपके अनुरोध के बारे में विवरण देता है। विशेष रूप से फ़ाइल अपलोड के मामले में, यह बहुत उपयोगी है क्योंकि आप अपनी फ़ाइल को सर्वर पर अपलोड कर सकते हैं, जो मुझे लगता है कि httpbin.org पर संभव नहीं है।
19/11 को वीएफआई

1
इस बारे में 'शांत' बात यह है कि यह टीएलएस / एचटीटीपीएस का उपयोग नहीं करता है जो तार पर बाइट्स को डीबग करना बहुत आसान बनाता है।
ntninja

40

http://requestb.in पहले से उल्लेखित टूल के समान था और इसमें बहुत अच्छा UI भी था।

RequestBin आपको एक URL देता है जो उससे किए गए अनुरोधों को एकत्रित करेगा और आपको मानव-अनुकूल तरीके से उनका निरीक्षण करने देगा। अपने HTTP क्लाइंट को भेजने या वेबहुक अनुरोधों का निरीक्षण करने और डीबग करने के लिए देखने के लिए RequestBin का उपयोग करें।

हालाँकि इसे Mar 21, 2018 के रूप में बंद कर दिया गया है।

हमने चल रहे दुर्व्यवहार के कारण RequestBin के सार्वजनिक रूप से होस्ट किए गए संस्करण को बंद कर दिया है जिससे साइट को मज़बूती से बनाए रखना बहुत मुश्किल हो गया है। कृपया अपने स्वयं के होस्ट किए गए इंस्टेंस को स्थापित करने के लिए निर्देश देखें ।


3
PutsReq भी RequestBin के समान है, लेकिन यह आपको उन प्रतिक्रियाओं को लिखने की अनुमति देता है जो आप JS के साथ चाहते हैं।
पाब्लो कैंटरो

2
RequestBin अब उपलब्ध नहीं है।
अमोखुइगन्सन

29

PutsReq पर एक नज़र डालें , यह दूसरों के समान है, लेकिन यह आपको उन प्रतिक्रियाओं को लिखने की भी अनुमति देता है जो आप जावास्क्रिप्ट का उपयोग करना चाहते हैं।


2
महान साइट - यह सबसे सहज लगता है और इसमें अच्छे दस्तावेज हैं जो आपको अनुरोध प्रकार, हेडर, फॉर्म डेटा, आदि जैसी चीजों की जांच करने में मदद करते हैं
अल्बाट्रॉस

25

Webhook परीक्षक एक महान उपकरण है: https://webhook.site ( GitHub )

यहां छवि विवरण दर्ज करें

मेरे लिए महत्वपूर्ण, यह आवश्यककर्ता के आईपी को दिखाता है, जो तब उपयोगी होता है जब आपको आईपी पते को श्वेत सूची में लाने की आवश्यकता होती है, लेकिन यह सुनिश्चित नहीं होता है कि यह क्या है।


मुझे यह प्रतिक्रिया देनी होगी कि जिस साइट पर पोस्ट किया जा रहा है उसका URL उसमें है। लेकिन साइट को बनाने के बाद एक यादृच्छिक GUID प्राप्त होता है, और जब आप New URLबटन पर क्लिक करते हैं तो साइट को बनाए जाने से पहले प्रतिक्रिया को संपादित करने का एक तरीका प्रतीत होता है । क्या कोई नया URL बनाने का तरीका है और फिर बाद में प्रतिक्रिया निकाय को संपादित करें?
निक

Https के लिए अंगूठा
ओलेग खालिदोव

23

यदि आप एक स्थानीय परीक्षण सर्वर चाहते हैं जो किसी भी 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]

1
ठीक है, मैं लिनक्स पर जब एक लाइनर पसंद करता हूं: stackoverflow.com/a/52351480/895245
Ciro Santilli Sant one one one

18

nc एक-लाइनर स्थानीय परीक्षण सर्वर

लिनक्स के तहत एक लाइन में एक स्थानीय परीक्षण सर्वर सेट करें:

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-openbsdUbuntu पर पहले से इंस्टॉल पैकेज व्यापक रूप से उपलब्ध है और है।

उबंटू 18.04 पर परीक्षण किया गया।


2
nc -kdl localhost 8000एक पाश में सुनेंगे, इसलिए बैश की कोई जरूरत नहीं है while। हालांकि, ncजवाब नहीं देगा, इसलिए परीक्षण क्वेरी गैर-प्रतिक्रिया के लिए समय समाप्त होने तक इंतजार करेगी।
अक्स

3
while true; do echo -e "HTTP/1.1 200 OK\n" | nc -Nl 8000; doneहर बार 200 ओके कोड के साथ एनसी प्रतिक्रिया देगा।
nikniknik

6

यहाँ एक पोस्टमैन गूंज है: 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":{"...

5

एक निःशुल्क वेब होस्ट चुनें और निम्नलिखित कोड डालें

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

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

4

https://www.mockable.io । इसमें बिना लॉगिन (24 घंटों का अस्थायी खाता) प्राप्त करने की अच्छी सुविधा है


सहमत में अच्छी विशेषताएं हैं जहां आप अपनी विशिष्ट प्रतिक्रिया निर्धारित कर सकते हैं। यानी 200/301, 401 आदि यदि आप एक त्रुटि का अनुकरण करना चाहते हैं या मेरे मामले में एक पृष्ठ पर रूट नहीं करते हैं तो कोणीय में एक संकल्प का उपयोग करते समय यदि उस पृष्ठ को प्रस्तुत करने के लिए डेटा वापस नहीं आया है (अभी तक)
fidev

3

मैंने एक ओपन-सोर्स हैक करने योग्य लोकल टेस्टिंग सर्वर बनाया है जिसे आप मिनटों में चला सकते हैं। आप नई एपीआई बना सकते हैं, अपनी खुद की प्रतिक्रिया को परिभाषित कर सकते हैं और इसे किसी भी तरह से हैक कर सकते हैं।

जीथब लिंक : https://github.com/prabodhprakash/localTestingServer


2

इसके लिए आपको किसी वेब साइट की आवश्यकता नहीं हो सकती है, केवल ब्राउज़र खोल F12सकते हैं, डेवलपर टूल> कंसोल तक पहुंच प्राप्त करने के लिए दबाएं , फिर कंसोल में ऐसा करने के लिए कुछ जावास्क्रिप्ट कोड लिखें।

यहाँ मैं कुछ तरीके साझा कर रहा हूँ जिन्हें पूरा करने के लिए:

GET अनुरोध के लिए: * .Using jQuery:

$.get("http://someurl/status/?messageid=597574445", function(data, status){
    console.log(data, status);
  });

पोस्ट अनुरोध के लिए: 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. शुद्ध जावास्क्रिप्ट का उपयोग करना:

    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 ();

(नोट: चूंकि मेरे कोड में बैकटिक कैरेक्टर (`) है, कोड फॉर्मेट बर्बाद हो गया है, मुझे नहीं पता कि इसे कैसे सुधारा जाए)


1

मुझे यकीन नहीं है कि अगर कोई GET और POST कॉल का परीक्षण करने के लिए इतना दर्द उठाएगा। मैंने पायथन फ्लास्क मॉड्यूल लिया और एक फ़ंक्शन लिखा, जो @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

यह इच्छा उपलब्ध नहीं है। निम्नलिखित इच्छाएं उपलब्ध हैं: ['एप्लीकेशन', 'आर्ग्स', 'ऑथराइजेशन ’, print ब्लूप्रिंट’,' चारसेट ’, set क्लोज’, 'कुकीज ’,' डेटा’, 'डेट ’, point एंडपॉइंट’, viron एनकाउंटर ’ ',' फाइल्स ',' फॉर्म ',' हेडर्स ',' होस्ट ',' जसन ',' मेथड ',' मैमटाइप ',' मॉड्यूल ',' पाथ ',' प्राग्मा ',' रेंज ',' रेफर ' 'योजना', 'उथला', 'धारा', 'यूआरएल', 'मूल्य']

http://127.0.0.1:5000/method/environ

{[wsgi.multiprocess ': गलत,' HTTP_COOKIE ':' csrftoken = YFKYZl3DtqEJJBwUlUapap28bLG1T4Uqq ',' SERVER_SOFTWARE ':' Werkzeug / 0.12.2 ',' SCRP " '/ पद्धति / 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, जैसे गेको) Chrome / 54.0.2840.71 Safari / 537.36 ',' HTTP_CONNECTION ':' कीप-सजीव ',' SERVER_NAME ':' 127.0.0.1.1, 'REMOTE_PORT': 49569, 'wsgi.url_scheme': http ',' SERVER_PORT ':' 5000 ',' werkzeug.request '::,' wsgi.input ':,' HTTP_HOST ':' 127.0.0।1: 5000 ',' wsgi.multithread ': गलत,' HTTP_UPGRADE_INSECURE_REQUESTS ':' 1 ',' HTTP_ACCEPT ':' टेक्स्ट / html, एप्लिकेशन / x + + एमएल, एप्लीकेशन / xml; q = 0.9, छवि / वेबप, /; q = 0.8 ',' wsgi.version ': (1, 0),' wsgi.run_once ': गलत,' wsgi.errors ':', मोड 'w' पर 0x000000000212150>, 'REMOTE_ADDR': '127.0.0.1.1 ',' HTTP_ACCEPT_LANGUAGE ':' en-US, en; q = 0.8 ',' HTTP_ACCEPT_ENCODING ':' gzip, deflate, sdch, br '}}


-13

बस एक अपने आप को स्थापित करें। इस स्निपेट को अपने वेबसर्वर पर कॉपी करें।

इको "<प्री>";
print_r ($ _ पोस्ट);
गूंज "</ pre>";

बस आप उस पेज को पोस्ट करना चाहते हैं। किया हुआ।


5
एक सर्वर का उपयोग करने के लिए बिंदु नहीं है। उदाहरण के लिए, यदि आप एसओ को एक प्रश्न पोस्ट करना चाहते हैं, लेकिन आपका सर्वर लंबे समय तक नहीं रह सकता है। ओपी कुछ स्थायी के लिए पूछ रहा है जैसे कि jsfiddle जिसका उपयोग परीक्षण या पोस्ट को प्रदर्शित करने के लिए किया जा सकता है।
अबल्टर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.