to me this looks like your content had an extra $C(13,10) at the end.
It could help to  have the full content at hands. 
eg:
before  content.OutputToDevice()
set ck=content.Read()
set ^ck($i(^ck))=ck
do content.Rewind()

I expect  zwrite ^ck will show more than 3  lines
That would indicate that the source of trouble is on the input side. 
Some closing action ?   

1)  
%Stream.GlobalBinary has a warning:

Note that on a unicode Cache although you can write unicode data into this class and read it back out this is not a supported use of this class and the Size property would be incorrect in this case as it would be the size in characters rather than the size in bytes

2)
   do content.OutputToDevice()
now your content is out and you are positioned at end

    do content.MoveTo(content.Size)
now you re-read content until LastCharacter-1, whatever total size might be
    set isNewLineTerminator = (content.Read(1) = $char(10)) 
reading the assumed last character

3)
you might be better off to use  
content.ReadLine(,.sc,.eol) and check eol for the termination status

 (in my case 192.168.56.1), whereas one would need 71.174.62.16

This means you try to get information that is stored in your router's and/or firewall's  (NAT, DHCP,... ) routing/mapping table.
I'd assume you need to use some utility of your OS using $ZF(-1,...) $ZF(-2,...) to get the outside view of the inside server

This might work inquiring nslookup on a DNS server outside your NAT, ...  Though I never tried it

Hi,
without any  REST (at that point)  as you expect to hand action from front-end to back-end:

If your front-end is able to listen on a dedicated IP port  then all you need is to send your data to the (negotiated?) IP:port.
Take a look to %Net.HttpRequest 
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...

From point of view of Caché your front-end acts then like a web-server receiving data.
Your reply from front-end  signals to Caché that the front-end is ready for the next junk / or terminates the stream