RokuKevin,
That may work with ncat, but when (just) the line POST /launch/12 HTTP/1.1\r\n\r\n is sent programatically I get the "400 Bad Request" mentioned initially. I have not try it yet, but it may well be as TheEndless has suggested. With HTTP 1.1 (vs 1.0) the addtional header(s) are needed, at least the HOST: . I will try it and see. If it works then it will be puzzling why something like the POST keypress works without the header. That might mean there is something improper in the ROKU firmware.
I'll post what I find...