Тестовый сервер HTTP, принимающий запросы GET/POST

Мне нужен живой тестовый сервер, который принимает мои запросы на базовую информацию через HTTP GET, а также позволяет мне выполнять POST (даже если он действительно ничего не делает). Это полностью для целей тестирования.

Хороший пример здесь. Он легко принимает запросы GET, но мне нужен и тот, который принимает запросы POST.

Кто-нибудь знает о сервере, на котором я тоже могу отправлять фиктивные тестовые сообщения?

Ответ 1

http://httpbin.org/

Он перекликается с данными, используемыми в вашем запросе для любого из этих типов:

Ответ 2

Есть http://ptsv2.com/

"Здесь вы найдете сервер, который получает любой POST, который вы хотите передать, и сохраняет содержимое для просмотра".

Ответ 3

http://requestb.in был похож на уже упомянутые инструменты, а также имел очень приятный интерфейс.

RequestBin дает вам URL, который будет собирать запросы, сделанные на него, и позволит вам проверить их в удобной для человека форме. Используйте RequestBin для просмотра того, что отправляет ваш HTTP-клиент, или для проверки и отладки запросов webhook.

Хотя это было прекращено с 21 марта 2018 года.

Мы прекратили доступ к общедоступной версии RequestBin из-за постоянных злоупотреблений, из-за которых было очень сложно поддерживать сайт в надежном состоянии. Пожалуйста, ознакомьтесь с инструкциями по настройке собственного экземпляра.

Ответ 4

Посмотрите PutsReq, он похож на другие, но также позволяет вам писать ответы, которые вы хотите использовать с помощью JavaScript.

Ответ 5

Если вы хотите, чтобы локальный тестовый сервер принимал любой 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]

Ответ 6

Webhook Tester - отличный инструмент: https://webhook.site (GitHub)

enter image description here

Для меня важно, что он показывает IP-адрес запрашивающей стороны, что полезно, когда вам нужно добавить IP-адрес в белый список, но вы не уверены, что это такое.

Ответ 7

Создать, выбрать бесплатный веб-хостинг и поставить следующий код

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

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

Ответ 8

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 широко доступен и предварительно установлен на Ubuntu.

Проверено на Ubuntu 18.04.

Ответ 9

https://www.mockable.io. Он имеет приятную возможность получения конечных точек без входа в систему (24-часовая временная учетная запись)

Ответ 10

Я создал локальный сервер тестирования с открытым исходным кодом, который можно запустить за считанные минуты. Вы можете создавать новые API, определять свой собственный ответ и взламывать его любым способом.

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

Ответ 11

Вот одно эхо почтальона: 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":{"...

Ответ 12

Я не уверен, что кто-то возьмет эту боль, чтобы протестировать вызовы 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

Это желание недоступно. Ниже приведены доступные пожелания: ['приложение', 'args', 'authorization', 'blueprint', 'charset', 'close', 'cookies', 'data', 'date', 'endpoint', 'environ '', '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'схема', 'мелкий', 'поток', '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': '', 'REQUEST_METHOD': 'GET', ' PATH_INFO ':'/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 ':' 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,/; q = 0.8 ',' wsgi.version ': (1, 0), 'wsgi.run_once': False, 'wsgi.errors': ', mode' w 'в 0x0000000002042150 > ,' REMOTE_ADDR ':' 127.0.0.1 ',' HTTP_ACCEPT_LANGUAGE ':' en-US, en; q = 0.8 ',' HTTP_ACCEPT_ENCODING ':' gzip, deflate, sdch, br '}

Ответ 13

Для этого вам может не понадобиться какой-либо веб-сайт, просто откройте браузер, нажмите 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();

(Примечание: поскольку у меня в коде есть символ обратного кавычка ('), формат кода разрушен, я понятия не имею, как его исправить)

Ответ 14

Просто настройте себя. Скопируйте этот фрагмент на свой веб-сервер.

echo "<pre>";
print_r($_POST);
echo "</pre>";

Просто опубликуйте, что вы хотите на этой странице. Готово.