send data using http POST from client and receive response from server using netcat over specific port

server :

while true;
        do {
                echo -e 'HTTP/1.1 200 OK\r\n'; sh;
        } | nc -l 8909;
echo "This is response from nc with http OK"
echo "\n"
echo "Cmdline is :"
cat /proc/cmdline
echo "\n"

Now, start listening on socket as,


Now, on client/application side, lets write a curl POST as,

curl -k \
        -H "Content-Type:text/xml; charset=UTF-8" \
        -X POST \
        -d '<?xml version="1.0" encoding="UTF-8"?>
        </address>' http://localhost:8909 -v

Now, start the client as,


And you will get the response as,

$ bash 
Note: Unnecessary use of -X or --request, POST is already inferred.
* Rebuilt URL to: http://localhost:8909/
*   Trying
* Connected to localhost ( port 8909 (#0)
> POST / HTTP/1.1
> Host: localhost:8909
> User-Agent: curl/7.47.0
> Accept: */*
> Content-Type:text/xml; charset=UTF-8
> Content-Length: 181
* upload completely sent off: 181 out of 181 bytes
< HTTP/1.1 200 OK
* no chunk, no close, no size. Assume close to signal end
This is response from nc with http OK

Cmdline is :
BOOT_IMAGE=/boot/vmlinuz-4.4.0-71-generic root=UUID=6dc72f0f-0d95-4e80-8ab7-c2331c79ca08 ro quiet splash vt.handoff=7

* Closing connection 0
READ  How to get mac-id using ipaddress in linux

Leave a Reply

Your email address will not be published. Required fields are marked *