Becky Willrich's instruction (quoted below) allowed me to see post data
when using tcpflow (Great utility! Thanks again Jim!). It looks like
one should set the "Content-Type" header field to
"application/x-www-form-urlencoded" when posting data to a WEB server
(Apache), otherwise the server does not pass the POST data to the PHP
page.
You need to configure the request BEFORE creating the stream - the two
CFReadStreamCreate calls will take a copy of the request. That's
probably why the body of the request is empty. Just move the
CFHTTPMessageAddAuthentication(), CFHTTPMessageSetHeaderFieldValue(),
and CFHTTPMessageSetBody() calls to prior to the CFReadStreamCreate()
calls.