After spending hours searching the forums, I believe I'm experiencing a unique makeWebRequest issue -- seemingly only on the iPhone (i.e. works on Android devices and the simulator). The call to makeWebRequest succeeds and my server returns a JSON object which my Watch Face receives (i.e. my onReceive response code is 200 and the data is a JSON object from my server - albeit empty of data). The options and parameters are shown below (a GET request and JSON response) and parameters are just Strings (base64 encoded options). The parameters are passed thru makeWebRequest's 2nd parameter and NOT included in my URL.
var options = { :method => Communications.HTTP_REQUEST_METHOD_GET, :headers => {"Content-Type" => Communications.REQUEST_CONTENT_TYPE_JSON}, :responseType => Communications.HTTP_RESPONSE_CONTENT_TYPE_JSON }; var params = { "request" => "[base 64 encoded string]", "token" => "[base 64 encoded string]" };
So, the issue is that my server is not receiving any GET parameters from iPhones which results in empty JSON data being sent back. I've checked the raw server logs and access from Android phones and the simulator does receive GET parameters but from iPhones it doesn't. Somewhere between makeWebRequest and my server (I suspect either iPhone GCM or the iPhone itself) it appears that the parameters are being discarded.
The only other piece of information I can think of is that my server has a Let's Encrypt certificate -- if that makes a difference.
Anybody have any ideas or experiencing similar issues?