我需要一个实时测试服务器,它通过HTTP GET接受我对基本信息的请求,并允许我POST(即使它真的什么都不做)。这完全是为了测试目的。

这里有一个很好的例子。它很容易接受GET请求,但我需要一个接受POST请求以及。

有人知道我也可以发送虚拟测试消息的服务器吗?


当前回答

你可能不需要任何网站,只需要打开浏览器,按F12来访问开发人员工具>控制台,然后在控制台写一些JavaScript代码来做到这一点。

下面我将分享一些实现这一目标的方法:

对于GET请求: *。使用jQuery:

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

POST请求:

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

使用纯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();

甚至使用ASP。Net:

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

sb.Append("<html>");
sb.AppendFormat("<body onload='document.forms[0].submit()'>");
sb.AppendFormat("<form action='{0}' method='post'>", url);
sb.AppendFormat("<input type='hidden' name='merchantId' value='{0}'>", "C668");
sb.AppendFormat("<input type='hidden' name='Token' value='{0}'>", "22720281459");
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");
Response.Write(sb.ToString());
Response.End();

其他回答

你可以在本地运行Ken Reitz的httpbin服务器(在docker下或裸机上):

https://github.com/postmanlabs/httpbin

运行dockerized

docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin

直接在您的机器上运行

## install dependencies
pip3 install gunicorn decorator httpbin werkzeug Flask flasgger brotlipy gevent meinheld six pyyaml

## start the server
gunicorn -b 0.0.0.0:8000 httpbin:app -k gevent

现在,您在http://0.0.0.0:8000上运行了个人httpbin实例(对您的所有局域网可见)

Minimal Flask REST服务器

我想要一个返回预定义响应的服务器,所以我发现在这种情况下,使用一个最小的Flask应用程序更简单:

#!/usr/bin/env python3

# Install dependencies:
#   pip3 install flask

import json

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def root():
    # spit back whatever was posted + the full env 
    return jsonify(
        {
            'request.json': request.json,
            'request.values': request.values,
            'env': json.loads(json.dumps(request.__dict__, sort_keys=True, default=str))
        }
    )

@app.route('/post', methods=['GET', 'POST'])
def post():
    if not request.json:
        return 'No JSON payload! Expecting POST!'
    # return the literal POST-ed payload
    return jsonify(
        {
            'payload': request.json,
        }
    )

@app.route('/users/<gid>', methods=['GET', 'POST'])
def users(gid):
    # return a JSON list of users in a group
    return jsonify([{'user_id': i,'group_id': gid } for i in range(42)])

@app.route('/healthcheck', methods=['GET'])
def healthcheck():
    # return some JSON
    return jsonify({'key': 'healthcheck', 'status': 200})

if __name__ == "__main__":
    with app.test_request_context():
        app.debug = True
    app.run(debug=True, host='0.0.0.0', port=8000)

https://httpbin.org/

它将在请求中使用以下类型的任何数据进行回显:

https://httpbin.org/anything Returns most of the below. https://httpbin.org/ip Returns Origin IP. https://httpbin.org/user-agent Returns user-agent. https://httpbin.org/headers Returns header dict. https://httpbin.org/get Returns GET data. https://httpbin.org/post Returns POST data. https://httpbin.org/put Returns PUT data. https://httpbin.org/delete Returns DELETE data https://httpbin.org/gzip Returns gzip-encoded data. https://httpbin.org/status/:code Returns given HTTP Status code. https://httpbin.org/response-headers?key=val Returns given response headers. https://httpbin.org/redirect/:n 302 Redirects n times. https://httpbin.org/relative-redirect/:n 302 Relative redirects n times. https://httpbin.org/cookies Returns cookie data. https://httpbin.org/cookies/set/:name/:value Sets a simple cookie. https://httpbin.org/basic-auth/:user/:passwd Challenges HTTPBasic Auth. https://httpbin.org/hidden-basic-auth/:user/:passwd 404'd BasicAuth. https://httpbin.org/digest-auth/:qop/:user/:passwd Challenges HTTP Digest Auth. https://httpbin.org/stream/:n Streams n–100 lines. https://httpbin.org/delay/:n Delays responding for n–10 seconds.

http://requestb.in类似于前面提到的工具,也有一个非常漂亮的UI。

RequestBin为您提供了一个URL,该URL将收集向它发出的请求,并让您以一种人性化的方式检查它们。 使用RequestBin查看HTTP客户端发送的内容或检查和调试webhook请求。

虽然它已于2018年3月21日停产。

由于持续的滥用,我们已经停止了RequestBin的公开托管版本,这使得它很难保持站点的可靠运行。请参阅有关设置自己的自托管实例的说明。

Webhook Tester是一个很好的工具:https://webhook.site (GitHub)

对我来说很重要的是,它显示了请求者的IP,当您需要将一个IP地址列入白名单但不确定它是什么时,这很有帮助。

另一个提供一些定制且易于使用(无需安装、注册)的网站是https://beeceptor.com。

您创建一个端点,向它发出初始请求,并可以调整响应。