Server uji HTTP menerima permintaan GET / POST

449

Saya memerlukan server uji hidup yang menerima permintaan saya untuk informasi dasar melalui HTTP GET dan juga memungkinkan saya untuk POST (bahkan jika itu benar-benar tidak melakukan apa-apa). Ini sepenuhnya untuk tujuan pengujian.

Contoh yang baik ada di sini . Itu dengan mudah menerima permintaan GET, tapi saya butuh satu yang menerima permintaan POST juga.

Adakah yang tahu tentang server yang bisa saya kirimi pesan uji boneka juga?

John Twigg
sumber
2
Apakah Anda ingin mencatat POST?
Jared Farrish
4
Ini melakukan apa yang Anda inginkan, saya pikir. github.com/jar-o/dumdum Tidak diperlukan kode
jar

Jawaban:

736

http://httpbin.org/

Itu menggemakan data yang digunakan dalam permintaan Anda untuk semua jenis ini:

Robert
sumber
Ini mengembalikan JSON yang menggambarkan permintaan yang Anda buat.
tbraun
4
Apakah ada kemungkinan untuk membuat server httpbin lokal?
user3280180
4
@ user3280180 $ pip install httpbin gunicorn && gunicorn httpbin:app sebagaimana disebutkan adalah httpbin.org
HVNSweeting
ini jawaban / layanan terbaik, imo. saya membuat codepen sederhana yang menunjukkan cara menggunakannya: codepen.io/nickleus/pen/qOjOGe
Nick Humphrey
6
@therobyouknow mengklik tautan melakukan GET, tetapi jika Anda melakukan POST untuk url itu berfungsi. Coba: curl -iX POST httpbin.org/postia mengembalikan 200.
Robert
120

Ada http://ptsv2.com/

"Di sini Anda akan menemukan server yang menerima POST apa pun yang ingin Anda berikan dan menyimpan konten untuk Anda tinjau."

catbot
sumber
7
Yang ini sangat bagus jika Anda menjalankan permintaan yang dipicu dari server jauh yang internal Anda tidak memiliki akses, karena itu akan menyimpan permintaan untuk pengambilan nanti.
Ozmo
2
Anda juga dapat mencoba requestb.in - ini juga menyimpan permintaan untuk pemeriksaan nanti.
Maksym Davydov
Saya tahu benar-benar ada yang bisa digunakan ... Tapi apakah ada "gettestserver" yang diperkirakan akan tetap terjaga untuk waktu yang lama?
byxor
2
Tidak seperti httpbin.org/put , ia mengembalikan respons yang sangat berguna yang memberikan perincian tentang permintaan Anda. Khususnya dalam hal pengunggahan file, ini sangat membantu karena Anda dapat melihat file Anda diunggah di server yang saya percaya tidak mungkin di httpbin.org.
ViFI
1
Hal "keren" tentang ini adalah tidak menggunakan TLS / HTTPS yang membuatnya lebih mudah untuk men-debug byte pada kabel.
ntninja
40

http://requestb.in mirip dengan alat yang telah disebutkan dan juga memiliki UI yang sangat bagus.

RequestBin memberi Anda URL yang akan mengumpulkan permintaan yang dibuat untuknya dan memungkinkan Anda memeriksanya dengan cara yang ramah manusia. Gunakan RequestBin untuk melihat apa yang dikirim klien HTTP Anda atau untuk memeriksa dan men-debug permintaan webhook.

Meskipun telah dihentikan pada 21 Maret 2018.

Kami telah menghentikan versi RequestBin yang dihosting secara publik karena penyalahgunaan yang terus-menerus yang menjadikannya sangat sulit untuk menjaga situs tetap andal. Silakan lihat instruksi untuk menyiapkan instance yang di-host-sendiri.

Mikeyg36
sumber
3
PutsReq juga mirip dengan RequestBin, tetapi memungkinkan Anda untuk menulis tanggapan yang Anda inginkan dengan JS.
Pablo Cantero
2
RequestBin tidak lagi tersedia.
AmokHuginnsson
29

Lihat PutsReq , mirip dengan yang lain, tetapi juga memungkinkan Anda untuk menulis tanggapan yang Anda inginkan menggunakan JavaScript.

Pablo Cantero
sumber
2
Situs hebat - sepertinya yang paling intuitif dan memiliki dokumentasi bagus yang membantu Anda memeriksa hal-hal seperti jenis permintaan, tajuk, data formulir, dll.
AlbatrossCafe
25

Webhook Tester adalah alat yang hebat: https://webhook.site ( GitHub )

masukkan deskripsi gambar di sini

Penting bagi saya, itu menunjukkan IP pemohon, yang sangat membantu ketika Anda perlu memasukkan daftar putih alamat IP tetapi tidak yakin apa itu.

Patrick Quirk
sumber
Saya perlu membuat badan tanggapan berisi URL situs yang diposting. Tetapi situs mendapat GUID acak setelah dibuat, dan sepertinya hanya ada cara untuk mengedit respons sebelum situs dibuat ketika Anda mengklik New URLtombol. Apakah ada cara untuk membuat URL baru dan kemudian mengedit badan tanggapan?
Nick
Jempol untuk https
Oleg Khalidov
23

Jika Anda ingin server pengujian lokal yang menerima URL apa pun dan hanya membuang permintaan ke konsol, Anda dapat menggunakan simpul:

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}/`);
});

Simpan di file 'echo.js' dan jalankan sebagai berikut:

$ node echo.js
Server running at http://localhost:3000/

Anda kemudian dapat mengirimkan data:

$ curl -d "[1,2,3]" -XPOST http://localhost:3000/foo/bar

yang akan ditampilkan di stdout server:

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]
Wilfred Hughes
sumber
1
Yah, saya lebih suka satu liner ketika di Linux: stackoverflow.com/a/52351480/895245
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
18

nc server uji lokal satu-liner

Menyiapkan server pengujian lokal dalam satu baris di Linux:

nc -kdl localhost 8000

Pembuat permintaan sampel di shell lain:

wget http://localhost:8000

kemudian pada shell pertama Anda melihat permintaan yang dibuat muncul:

GET / HTTP/1.1
User-Agent: Wget/1.19.4 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: localhost:8000
Connection: Keep-Alive

ncdari netcat-openbsdpaket ini tersedia secara luas dan pra-instal di Ubuntu.

Diuji pada Ubuntu 18.04.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber
2
nc -kdl localhost 8000akan mendengarkan dalam satu lingkaran, jadi tidak perlu bash while. Namun, nctidak akan menjawab, sehingga pertanyaan pengujian akan menunggu hingga batas waktu untuk non-respons.
aks
3
while true; do echo -e "HTTP/1.1 200 OK\n" | nc -Nl 8000; doneakan membuat nc merespons dengan 200 kode OK setiap saat.
nikniknik
6

Berikut ini satu gema tukang pos: https://docs.postman-echo.com/

contoh:

curl --request POST \
  --url https://postman-echo.com/post \
  --data 'This is expected to be sent back as part of response body.'

tanggapan:

{"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":{"...
rogerdpack
sumber
5

Buat pilih web host gratis dan masukkan kode berikut

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

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

https://www.mockable.io . Ini memiliki fitur bagus untuk mendapatkan titik akhir tanpa login (akun sementara 24 jam)

Mike
sumber
setuju memiliki fitur-fitur bagus dimana Anda dapat mengatur respons spesifik yang Anda butuhkan. yaitu 200/301, 401 dll. Baik jika Anda ingin mensimulasikan kesalahan atau dalam kasus saya tidak merutekan ke halaman saat menggunakan tekad di Angular jika data untuk merender halaman itu belum kembali (belum)
fidev
3

Saya telah membuat server pengujian lokal open-source yang dapat diretas dan dapat Anda jalankan dalam hitungan menit. Anda dapat membuat API baru, menentukan respons Anda sendiri dan meretasnya dengan cara apa pun yang Anda inginkan.

Tautan Github : https://github.com/prabodhprakash/localTestingServer

prabodhprakash
sumber
2

Anda mungkin tidak memerlukan situs web apa pun untuk itu, cukup buka browser, tekan F12untuk mendapatkan akses ke alat pengembang> konsol, lalu di konsol tulis beberapa Kode JavaScript untuk melakukannya.

Di sini saya berbagi beberapa cara untuk mencapai itu:

Untuk permintaan GET: * .Menggunakan jQuery:

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

Untuk permintaan POST: 1. Menggunakan 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. Menggunakan jQuery, tambahkan dan kirim

     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. Menggunakan JavaScript Murni:

    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. Atau bahkan menggunakan ASP.Net:

    var url = " https://Payment.com/index "; Response.Clear (); var sb = System.Text.StringBuilder () baru;

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

(Catatan: Karena saya memiliki karakter backtick (`) dalam kode saya format kode hancur, saya tidak tahu bagaimana cara memperbaikinya)

Mohammad Musavi
sumber
1

Saya tidak yakin apakah ada orang yang akan mengambil banyak rasa sakit ini untuk menguji panggilan GET dan POST. Saya mengambil modul Python Flask dan menulis fungsi yang melakukan sesuatu yang mirip dengan apa yang dibagikan @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"

Ketika saya menjalankan ini, ini mengikuti:

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)

Sekarang mari kita coba beberapa panggilan. Saya menggunakan browser.

http://127.0.0.1#000/method

Ini hanya metode GET

http://127.0.0.1==000/method/NotCorrect

Keinginan ini tidak tersedia. Berikut ini adalah keinginan yang tersedia: ['aplikasi', 'args', 'otorisasi', 'cetak biru', 'charset', 'tutup', 'cookie', 'data', 'tanggal', 'titik akhir', 'lingkungan ',' file ',' form ',' header ',' host ',' json ',' metode ',' mimetype ',' module ',' path ',' pragma ',' range ',' referrer ', 'skema', 'dangkal', 'aliran', 'url', 'nilai']

http://127.0.0.1==000/method/environ

{'wsgi.multiprocess': Salah, 'HTTP_COOKIE': 'csrftoken = YFKYYZl3DtqEJJBwUlap28bLG1T4Cyuq', 'SERVER_SOFTWARE': 'Werkzeug / 0.12.2', 'SCRETTEM' ':' REKRUTAN ' '/ method /viron', '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, seperti Gecko) Chrome / 54.0.2840.71 Safari / 537.36 ',' HTTP_CONNECTION ':' keep-live ',' 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 ': Salah,' HTTP_UPGRADE_INSECURE_REQUESTS ':' 1 ',' HTTP_ACCEPT ':' teks / html, aplikasi / xhtml + xml, aplikasi / xml; q = 0.9, gambar / webp,1: 5000 ',' wsgi.multithread ': Salah,' HTTP_UPGRADE_INSECURE_REQUESTS ':' 1 ',' HTTP_ACCEPT ':' teks / html, aplikasi / xhtml + xml, aplikasi / xml; q = 0,9, gambar / webp, /; q = 0,8 ',' wsgi.version ': (1, 0),' wsgi.run_once ': False,' wsgi.errors ':', mode 'w' di 0x0000000002042150>, 'REMOTE_ADDR': '127.0.0.1 ',' HTTP_ACCEPT Westph ':' en-US, en; q = 0.8 ',' HTTP_ACCEPT_ENCODING ':' gzip, deflate, sdch, br '}

Arindam Roychowdhury
sumber
-13

Cukup atur sendiri. Salin cuplikan ini ke server web Anda.

gema "<pre>";
print_r ($ _ POST);
gema "</pre>";

Cukup kirim apa yang Anda inginkan ke halaman itu. Selesai

Kapten Hawaii
sumber
5
Intinya adalah tidak harus menggunakan server. Misalnya, bagaimana jika Anda ingin memposting pertanyaan ke SO, tetapi server Anda mungkin tidak ada lama. OP meminta sesuatu yang permanen seperti jsfiddle yang dapat digunakan untuk menguji atau menunjukkan pos.
Abalter