コード例 #1
0
    private RequestPtr SerializeDataAsync()
    {
        RequestPtr rawrequestPtr = new RequestPtr();

        string jsonRequest = JsonConvert.SerializeObject(trackingRequest);

        rawrequestPtr.rawRequest = Encoding.UTF8.GetBytes(jsonRequest);

        return(rawrequestPtr);
    }
コード例 #2
0
    private IEnumerator SendTrackingRequest(RequestPtr rawrequestPtr, int tries)
    {
        if (tries >= 5)
        {
            //string path = Path.Combine(Application.persistentDataPath, "tracking.txt");
            //using (TextWriter writer = File.CreateText(path))
            //{
            //
            //}
        }
        else
        {
            WWWForm webForm = new WWWForm();

            using (UnityWebRequest unityWebRequest = UnityWebRequest.Post(trackingEndpoint, webForm))
            {
                //Set headers
                unityWebRequest.SetRequestHeader("Content-Type", "application/json");

                //Upload Handler to handle data
                unityWebRequest.uploadHandler             = new UploadHandlerRaw(rawrequestPtr.rawRequest);
                unityWebRequest.uploadHandler.contentType = "application/json";

                //Download handler
                unityWebRequest.downloadHandler = new DownloadHandlerBuffer();

                // Send the request
                yield return(unityWebRequest.SendWebRequest());

                //await response
                if (unityWebRequest.downloadHandler.text.Contains("success"))
                {
                    UnityEngine.Debug.Log($"Sending Request - succeded: true");
                }
                else
                {
                    UnityEngine.Debug.Log($"Sending Request - succeded: false , Resending Request");
                    StartCoroutine(SendTrackingRequest(rawrequestPtr, tries++));
                }
            }
        }
    }
コード例 #3
0
    /// <summary>
    /// Stop the tracker, send the data of to the server
    /// </summary>
    private async Task TrackingRequest()
    {
        RequestPtr rawrequestPtr = await Task.Run(() => SerializeDataAsync());

        StartCoroutine(SendTrackingRequest(rawrequestPtr, 0));
    }