cURL is a popular library for submitting HTTP requests. It may be used from the command line or via bindings to various scripting languages such as PHP. SOAP client libraries such as nuSOAP use cURL as the underlying HTTP client.
By default, cURL checks the content length of a POST before making a request. If the content length is above a minimum size, it sends an initial, empty request with an 'Expect: 100-continue' header, to test whether the server will accept the full content. Upon receiving a 100 Continue response from the server, cURL will post the full content.
Luminate Online does not support this behavior, so you have to configure cURL to disable it:
curl_setopt( $curl_handle, CURLOPT_HTTPHEADER, array('Expect:') );
Failure to disable this behavior will result in an error that the server closed the connection with data remaining.