96 lines
3.8 KiB
C#
96 lines
3.8 KiB
C#
using System.Collections.Generic;
|
|
using ThinkingSDK.PC.Config;
|
|
using ThinkingSDK.PC.Constant;
|
|
using ThinkingSDK.PC.Utils;
|
|
using UnityEngine;
|
|
using UnityEngine.Networking;
|
|
using System.Collections;
|
|
|
|
namespace ThinkingSDK.PC.Request
|
|
{
|
|
public class ThinkingSDKDebugRequest:ThinkingSDKBaseRequest
|
|
{
|
|
private int mDryRun = 0;
|
|
private string mDeviceID = ThinkingSDKDeviceInfo.DeviceID();
|
|
public void SetDryRun(int dryRun)
|
|
{
|
|
mDryRun = dryRun;
|
|
}
|
|
public ThinkingSDKDebugRequest(string appId, string url, string data):base(appId,url,data)
|
|
{
|
|
|
|
}
|
|
public ThinkingSDKDebugRequest(string appId, string url) : base(appId, url)
|
|
{
|
|
}
|
|
|
|
public override IEnumerator SendData_2(ResponseHandle responseHandle, string data, int eventCount)
|
|
{
|
|
this.SetData(data);
|
|
string uri = this.URL();
|
|
//string content = ThinkingSDKJSON.Serialize(this.Data()[0]);
|
|
string content = data.Substring(1,data.Length-2);
|
|
|
|
WWWForm form = new WWWForm();
|
|
form.AddField("appid", this.APPID());
|
|
form.AddField("source", "client");
|
|
form.AddField("dryRun", mDryRun);
|
|
form.AddField("deviceId", mDeviceID);
|
|
form.AddField("data", content);
|
|
|
|
using (UnityWebRequest webRequest = UnityWebRequest.Post(uri, form))
|
|
{
|
|
webRequest.timeout = 30;
|
|
webRequest.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
|
|
if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("Send event Request:\n " + content + "\n URL = " + uri);
|
|
|
|
// Request and wait for the desired page.
|
|
yield return webRequest.SendWebRequest();
|
|
|
|
Dictionary<string,object> resultDict = null;
|
|
#if UNITY_2020_1_OR_NEWER
|
|
switch (webRequest.result)
|
|
{
|
|
case UnityWebRequest.Result.ConnectionError:
|
|
case UnityWebRequest.Result.DataProcessingError:
|
|
case UnityWebRequest.Result.ProtocolError:
|
|
if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("Send event Response Error:\n " + webRequest.error);
|
|
break;
|
|
case UnityWebRequest.Result.Success:
|
|
string resultText = webRequest.downloadHandler.text;
|
|
if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("Send event Response:\n " + resultText);
|
|
if (!string.IsNullOrEmpty(resultText))
|
|
{
|
|
resultDict = ThinkingSDKJSON.Deserialize(resultText);
|
|
}
|
|
break;
|
|
}
|
|
#else
|
|
if (webRequest.isHttpError || webRequest.isNetworkError)
|
|
{
|
|
if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("Send event Response Error:\n " + webRequest.error);
|
|
}
|
|
else
|
|
{
|
|
string resultText = webRequest.downloadHandler.text;
|
|
if (ThinkingSDKPublicConfig.IsPrintLog()) ThinkingSDKLogger.Print("Send event Response:\n " + resultText);
|
|
if (!string.IsNullOrEmpty(resultText))
|
|
{
|
|
resultDict = ThinkingSDKJSON.Deserialize(resultText);
|
|
}
|
|
}
|
|
#endif
|
|
if (responseHandle != null)
|
|
{
|
|
if (resultDict != null)
|
|
{
|
|
resultDict.Add("flush_count", eventCount);
|
|
}
|
|
responseHandle(resultDict);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|