How to send output to web server, line by line?

The following code works perfectly, but I am having trouble adapting it to output to my web server rather than a local file:

#!/bin/sh
# VARIABLES

adapter="/dev/tty.usbmodem0000001"

if [ -a $adapter ]; then
   cat $adapter | tee >> WORKING.txt
   echo "AT+VCID=1" > $adapter
   
else
   echo "Modem not found"
fi

In my pseudo code, I replaced "tee >> WORKING.txt" with "curl -k 'https://secure.myserver.com/log.cgi?num=$?'" but it doesn't function.
Thank you for any help that you can provide.

Basically, I don't know how to pipe output from one command to another successfully.
Part of the challenge is that the connection to the modem is what I would describe as a socket. So new data streams in whenever the modem receives it, and the shell script must remain open. It does not, and should not exit.

Well, you shouldn't just keep a persistent connection to a web server around like that. HTTP isn't really meant for persistent transfers, the idea is you make a request, finish it, and either make another or break the connection. So you'll need to break this into chunks, somehow. You may be able to set reads from the device to auto-timeout...

Your piping is fine but you're not actually telling curl to send any data. You probably need to POST it. Because of the way HTTP works you may not be able to pipe it at all, I know the similar wget tool needs to be given data of known length. To what and how depends on your web interface. We really don't have any of the details we need to tell you how here.

Perhaps I wasn't clear. The modem spits out lines periodically -- as in 10 or so lines every 30 minutes. I want each line to be turned into a separate curl command, so that the data contained in each line can be sent to my web server for processing.

When I connect to the modem via the terminal, the connection remains open. I can watch incoming phone calls arrive, errors, etc. That is the only persistent part. The web server should only receive a request for each line of data received. Normally, the modem is quiet -- waiting for a call/fax/callerid/etc

curl doesn't do that. Like I said, you'll need to split it yourself.