You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
249 lines
6.9 KiB
C#
249 lines
6.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using UnityEngine;
|
|
|
|
namespace Prime31
|
|
{
|
|
// Token: 0x02000003 RID: 3
|
|
public class P31RestKit
|
|
{
|
|
// Token: 0x17000001 RID: 1
|
|
// (get) Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250
|
|
// (set) Token: 0x06000002 RID: 2 RVA: 0x000020BC File Offset: 0x000002BC
|
|
protected virtual GameObject surrogateGameObject
|
|
{
|
|
get
|
|
{
|
|
if (this._surrogateGameObject == null)
|
|
{
|
|
this._surrogateGameObject = GameObject.Find("P31CoroutineSurrogate");
|
|
if (this._surrogateGameObject == null)
|
|
{
|
|
this._surrogateGameObject = new GameObject("P31CoroutineSurrogate");
|
|
UnityEngine.Object.DontDestroyOnLoad(this._surrogateGameObject);
|
|
}
|
|
}
|
|
return this._surrogateGameObject;
|
|
}
|
|
set
|
|
{
|
|
this._surrogateGameObject = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x17000002 RID: 2
|
|
// (get) Token: 0x06000003 RID: 3 RVA: 0x000020C8 File Offset: 0x000002C8
|
|
// (set) Token: 0x06000004 RID: 4 RVA: 0x00002107 File Offset: 0x00000307
|
|
protected MonoBehaviour surrogateMonobehaviour
|
|
{
|
|
get
|
|
{
|
|
if (this._surrogateMonobehaviour == null)
|
|
{
|
|
this._surrogateMonobehaviour = this.surrogateGameObject.AddComponent<MonoBehaviour>();
|
|
}
|
|
return this._surrogateMonobehaviour;
|
|
}
|
|
set
|
|
{
|
|
this._surrogateMonobehaviour = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000006 RID: 6 RVA: 0x00002120 File Offset: 0x00000320
|
|
protected virtual IEnumerator send(string path, HTTPVerb httpVerb, Dictionary<string, object> parameters, Action<string, object> onComplete)
|
|
{
|
|
if (path.StartsWith("/"))
|
|
{
|
|
path = path.Substring(1);
|
|
}
|
|
WWW www = this.processRequest(path, httpVerb, parameters);
|
|
yield return www;
|
|
if (this.debugRequests)
|
|
{
|
|
Debug.Log("response error: " + www.error);
|
|
Debug.Log("response text: " + www.text);
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
stringBuilder.Append("Response Headers:\n");
|
|
foreach (KeyValuePair<string, string> keyValuePair in www.responseHeaders)
|
|
{
|
|
stringBuilder.AppendFormat("{0}: {1}\n", keyValuePair.Key, keyValuePair.Value);
|
|
}
|
|
Debug.Log(stringBuilder.ToString());
|
|
}
|
|
if (onComplete != null)
|
|
{
|
|
this.processResponse(www, onComplete);
|
|
}
|
|
www.Dispose();
|
|
yield break;
|
|
}
|
|
|
|
// Token: 0x06000007 RID: 7 RVA: 0x00002160 File Offset: 0x00000360
|
|
protected virtual WWW processRequest(string path, HTTPVerb httpVerb, Dictionary<string, object> parameters)
|
|
{
|
|
StringBuilder stringBuilder = new StringBuilder(this._baseUrl + path);
|
|
bool flag = httpVerb != HTTPVerb.GET;
|
|
WWWForm wwwform = (!flag) ? null : new WWWForm();
|
|
if (parameters != null && parameters.Count > 0)
|
|
{
|
|
if (flag)
|
|
{
|
|
foreach (KeyValuePair<string, object> keyValuePair in parameters)
|
|
{
|
|
if (keyValuePair.Value is string)
|
|
{
|
|
wwwform.AddField(keyValuePair.Key, keyValuePair.Value as string);
|
|
}
|
|
else if (keyValuePair.Value is byte[])
|
|
{
|
|
wwwform.AddBinaryData(keyValuePair.Key, keyValuePair.Value as byte[]);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bool flag2 = true;
|
|
if (path.Contains("?"))
|
|
{
|
|
flag2 = false;
|
|
}
|
|
foreach (KeyValuePair<string, object> keyValuePair2 in parameters)
|
|
{
|
|
if (keyValuePair2.Value is string)
|
|
{
|
|
stringBuilder.AppendFormat("{0}{1}={2}", (!flag2) ? "&" : "?", WWW.EscapeURL(keyValuePair2.Key), WWW.EscapeURL(keyValuePair2.Value as string));
|
|
flag2 = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.debugRequests)
|
|
{
|
|
Debug.Log("url: " + stringBuilder.ToString());
|
|
}
|
|
return (!flag) ? new WWW(stringBuilder.ToString()) : new WWW(stringBuilder.ToString(), wwwform);
|
|
}
|
|
|
|
// Token: 0x06000008 RID: 8 RVA: 0x0000235C File Offset: 0x0000055C
|
|
protected virtual Hashtable headersForRequest(HTTPVerb httpVerb, Dictionary<string, object> parameters)
|
|
{
|
|
Hashtable result;
|
|
if (httpVerb == HTTPVerb.PUT)
|
|
{
|
|
result = new Hashtable
|
|
{
|
|
{
|
|
"X-HTTP-Method-Override",
|
|
"PUT"
|
|
}
|
|
};
|
|
}
|
|
else
|
|
{
|
|
result = null;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
// Token: 0x06000009 RID: 9 RVA: 0x00002398 File Offset: 0x00000598
|
|
protected virtual void processResponse(WWW www, Action<string, object> onComplete)
|
|
{
|
|
if (www.error != null)
|
|
{
|
|
onComplete(www.error, null);
|
|
}
|
|
else if (this.isResponseJson(www))
|
|
{
|
|
object obj = Json.decode(www.text);
|
|
if (obj == null)
|
|
{
|
|
obj = www.text;
|
|
}
|
|
onComplete(null, obj);
|
|
}
|
|
else
|
|
{
|
|
onComplete(null, www.text);
|
|
}
|
|
}
|
|
|
|
// Token: 0x0600000A RID: 10 RVA: 0x0000240C File Offset: 0x0000060C
|
|
protected bool isResponseJson(WWW www)
|
|
{
|
|
bool flag = false;
|
|
if (this.forceJsonResponse)
|
|
{
|
|
flag = true;
|
|
}
|
|
if (!flag)
|
|
{
|
|
foreach (KeyValuePair<string, string> keyValuePair in www.responseHeaders)
|
|
{
|
|
if (keyValuePair.Key.ToLower() == "content-type")
|
|
{
|
|
if (keyValuePair.Value.ToLower().Contains("/json") || keyValuePair.Value.ToLower().Contains("/javascript"))
|
|
{
|
|
flag = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return (!flag || www.text.StartsWith("[") || www.text.StartsWith("{")) && flag;
|
|
}
|
|
|
|
// Token: 0x0600000B RID: 11 RVA: 0x00002510 File Offset: 0x00000710
|
|
public void get(string path, Action<string, object> completionHandler)
|
|
{
|
|
this.get(path, null, completionHandler);
|
|
}
|
|
|
|
// Token: 0x0600000C RID: 12 RVA: 0x0000251C File Offset: 0x0000071C
|
|
public void get(string path, Dictionary<string, object> parameters, Action<string, object> completionHandler)
|
|
{
|
|
this.surrogateMonobehaviour.StartCoroutine(this.send(path, HTTPVerb.GET, parameters, completionHandler));
|
|
}
|
|
|
|
// Token: 0x0600000D RID: 13 RVA: 0x00002535 File Offset: 0x00000735
|
|
public void post(string path, Action<string, object> completionHandler)
|
|
{
|
|
this.post(path, null, completionHandler);
|
|
}
|
|
|
|
// Token: 0x0600000E RID: 14 RVA: 0x00002541 File Offset: 0x00000741
|
|
public void post(string path, Dictionary<string, object> parameters, Action<string, object> completionHandler)
|
|
{
|
|
this.surrogateMonobehaviour.StartCoroutine(this.send(path, HTTPVerb.POST, parameters, completionHandler));
|
|
}
|
|
|
|
// Token: 0x0600000F RID: 15 RVA: 0x0000255A File Offset: 0x0000075A
|
|
public void put(string path, Action<string, object> completionHandler)
|
|
{
|
|
this.put(path, null, completionHandler);
|
|
}
|
|
|
|
// Token: 0x06000010 RID: 16 RVA: 0x00002566 File Offset: 0x00000766
|
|
public void put(string path, Dictionary<string, object> parameters, Action<string, object> completionHandler)
|
|
{
|
|
this.surrogateMonobehaviour.StartCoroutine(this.send(path, HTTPVerb.PUT, parameters, completionHandler));
|
|
}
|
|
|
|
// Token: 0x04000006 RID: 6
|
|
protected string _baseUrl;
|
|
|
|
// Token: 0x04000007 RID: 7
|
|
public bool debugRequests = false;
|
|
|
|
// Token: 0x04000008 RID: 8
|
|
protected bool forceJsonResponse;
|
|
|
|
// Token: 0x04000009 RID: 9
|
|
private GameObject _surrogateGameObject;
|
|
|
|
// Token: 0x0400000A RID: 10
|
|
private MonoBehaviour _surrogateMonobehaviour;
|
|
}
|
|
}
|