Skip to main content

A simple Flask webserver to log all incoming requests with their headers and payloads

Project description

PyPI version Python Support GitHub last commit

postbin

A simple Flask webserver to log all incoming requests with their headers and payloads.

Installation

Install postbin using pip:

pip install postbin

Usage

Start the server with

$ postbin

Then make requests, e.g. with curl:

curl -X POST http://127.0.0.1:5000 \
     -H "Content-Type: application/json" \
     -H "Custom-Header: CustomValue" \
     -d '{"key1":"value1","key2":"value2"}'

The postbin prints:

           Request Headers
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓
┃         Header ┃ Value            ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
│           Host │ 127.0.0.1:5000   │
│     User-Agent │ curl/7.68.0      │
│         Accept │ */*              │
│   Content-Type │ application/json │
│  Custom-Header │ CustomValue      │
│ Content-Length │ 33               │
└────────────────┴──────────────────┘
           JSON Payload: {'key1': 'value1', 'key2': 'value2'}

Examples

A simple GET request

curl -i -H "some-header: some-value" localhost:5000/foo/bar?somequery=somevalue

Output:

[06:31:34] Received Request: GET /foo/bar
        Request Headers
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┓
┃      Header ┃ Value          ┃
┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━┩
│        Host │ localhost:5000 │
│  User-Agent │ curl/7.68.0    │
│      Accept │ */*            │
│ Some-Header │ some-value     │
└─────────────┴────────────────┘
           Data Payload: b''

Multi-dict support of form data

Input:

curl -X PUT "http://127.0.0.1:5000/" \
        -H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \
        -H "X-Test-Header: foo bar" \
        -H "Accept: application/json" \
        --data-raw "key1"="value1" \
        --data-raw "array1[]"="value1" \
        --data-raw "array1[]"="value2" \
        --data-raw "key2"="value1"

Output:

[06:48:08] Received Request: PUT /
                           Request Headers
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃         Header ┃ Value                                            ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│           Host │ localhost:5000                                   │
│     User-Agent │ curl/7.68.0                                      │
│   Content-Type │ application/x-www-form-urlencoded; charset=utf-8 │
│  X-Test-Header │ foo bar                                          │
│         Accept │ application/json                                 │
│ Content-Length │ 55                                               │
└────────────────┴──────────────────────────────────────────────────┘
           Form Data:
             key1: value1
             array1[]: value1
             array1[]: value2
             key2: value1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

postbin-0.2.0.tar.gz (3.6 kB view hashes)

Uploaded Source

Built Distribution

postbin-0.2.0-py3-none-any.whl (4.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page