1
This commit is contained in:
@@ -10,6 +10,8 @@ using UnityEngine.Networking;
|
||||
|
||||
namespace Stary.Evo
|
||||
{
|
||||
|
||||
|
||||
public static class WebRequestSystem
|
||||
{
|
||||
private static string authorization;
|
||||
@@ -30,11 +32,14 @@ namespace Stary.Evo
|
||||
string postData = JsonConvert.SerializeObject(data);
|
||||
try
|
||||
{
|
||||
#if UNITY_2021_3_OR_NEWER
|
||||
using UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData);
|
||||
#else
|
||||
using UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData);
|
||||
#endif
|
||||
using UnityWebRequest webRequest = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST);
|
||||
|
||||
webRequest.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
|
||||
if (string.IsNullOrEmpty(postData))
|
||||
{
|
||||
Debug.LogError("WebRequestSystem.Login postData is null");
|
||||
return false;
|
||||
}
|
||||
|
||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
||||
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
||||
@@ -85,7 +90,10 @@ namespace Stary.Evo
|
||||
authorization = EditorPrefs.GetString("Authorization");
|
||||
try
|
||||
{
|
||||
using UnityWebRequest webRequest = UnityWebRequest.Get($"{url}?token={authorization}");
|
||||
|
||||
using UnityWebRequest webRequest =
|
||||
new UnityWebRequest($"{url}/{authorization}", UnityWebRequest.kHttpVerbGET);
|
||||
//using UnityWebRequest webRequest = UnityWebRequest.Get($"{url}?token={authorization}");
|
||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||
webRequest.timeout = 10;
|
||||
await webRequest.SendWebRequest();
|
||||
@@ -146,6 +154,7 @@ namespace Stary.Evo
|
||||
try
|
||||
{
|
||||
using UnityWebRequest webRequest = UnityWebRequest.Post(url, form);
|
||||
|
||||
webRequest.SetRequestHeader("Authorization", authorization);
|
||||
webRequest.disposeUploadHandlerOnDispose = true;
|
||||
webRequest.disposeDownloadHandlerOnDispose = true;
|
||||
@@ -256,8 +265,77 @@ namespace Stary.Evo
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GET请求数据
|
||||
/// 携带数据:否
|
||||
/// 幂等性:是
|
||||
/// </summary>
|
||||
/// <param name="url">请求数据的URL地址</param>
|
||||
/// <param name="path">请求数据的路径</param>
|
||||
/// <returns></returns>
|
||||
public static async Task<ResultMessageEntity> Get(string url, string path)
|
||||
{
|
||||
if (!GetTokenState())
|
||||
{
|
||||
Debug.LogError("用户未登录,请先登录");
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 2001,
|
||||
message = "用户未登录,请先登录"
|
||||
};
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string fullUrl = url.TrimEnd('/') + "/" + path.TrimStart('/');
|
||||
using UnityWebRequest webRequest = new UnityWebRequest(fullUrl, UnityWebRequest.kHttpVerbGET);
|
||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||
if (authorization != null)
|
||||
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
||||
|
||||
webRequest.timeout = 20;
|
||||
await webRequest.SendWebRequest();
|
||||
|
||||
// 增强错误处理
|
||||
if (webRequest.result != UnityWebRequest.Result.Success)
|
||||
{
|
||||
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
||||
$"URL: {url}\n" +
|
||||
$"Error: {webRequest.error}\n" +
|
||||
$"Response: {webRequest.downloadHandler.text}";
|
||||
|
||||
Debug.LogError(errorMsg);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = errorMsg
|
||||
};
|
||||
}
|
||||
|
||||
ResultMessageEntity resultMessageEntity =
|
||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||
if (resultMessageEntity.code != 200)
|
||||
{
|
||||
Debug.LogError(resultMessageEntity.message);
|
||||
}
|
||||
|
||||
return resultMessageEntity;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"UnityEvo:WebRequestSystem.Get" + e.Message);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = e.Message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// POST请求数据
|
||||
/// 携带数据:是
|
||||
/// 幂等性:否
|
||||
/// </summary>
|
||||
/// <param name="url">获取Token值的服务URL地址(很重要)</param>
|
||||
/// <param name="postData">传入请求的参数,此处参数为JOSN格式</param>
|
||||
@@ -276,44 +354,44 @@ namespace Stary.Evo
|
||||
|
||||
try
|
||||
{
|
||||
#if UNITY_2021_3_OR_NEWER
|
||||
using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
||||
#else
|
||||
using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
||||
#endif
|
||||
using UnityWebRequest webRequest = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST);
|
||||
// #if UNITY_2021_3_OR_NEWER
|
||||
// using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
||||
// #else
|
||||
// using (UnityWebRequest webRequest = UnityWebRequest.PostWwwForm(url, postData)) //第二种写法此行注释
|
||||
// #endif
|
||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
||||
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
||||
webRequest.SetRequestHeader("Content-Type", "application/json");
|
||||
webRequest.SetRequestHeader("Authorization", authorization);
|
||||
webRequest.disposeUploadHandlerOnDispose = true;
|
||||
webRequest.disposeDownloadHandlerOnDispose = true;
|
||||
webRequest.disposeCertificateHandlerOnDispose = true;
|
||||
webRequest.timeout = 20;
|
||||
await webRequest.SendWebRequest();
|
||||
webRequest.uploadHandler?.Dispose();
|
||||
// 更新错误检查方式
|
||||
if (webRequest.result == UnityWebRequest.Result.ConnectionError ||
|
||||
webRequest.result == UnityWebRequest.Result.ProtocolError)
|
||||
{
|
||||
byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(postData);
|
||||
webRequest.uploadHandler = new UploadHandlerRaw(postBytes);
|
||||
webRequest.SetRequestHeader("Content-Type", "application/json");
|
||||
webRequest.SetRequestHeader("Authorization", authorization);
|
||||
webRequest.disposeUploadHandlerOnDispose = true;
|
||||
webRequest.disposeDownloadHandlerOnDispose = true;
|
||||
webRequest.disposeCertificateHandlerOnDispose = true;
|
||||
webRequest.timeout = 20;
|
||||
await webRequest.SendWebRequest();
|
||||
webRequest.uploadHandler?.Dispose();
|
||||
// 更新错误检查方式
|
||||
if (webRequest.result == UnityWebRequest.Result.ConnectionError ||
|
||||
webRequest.result == UnityWebRequest.Result.ProtocolError)
|
||||
Debug.LogError(webRequest.error);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
Debug.LogError(webRequest.error);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = webRequest.error
|
||||
};
|
||||
code = 5001,
|
||||
message = webRequest.error
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
ResultMessageEntity resultMessageEntity =
|
||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||
if (resultMessageEntity.code != 200)
|
||||
{
|
||||
Debug.LogError(resultMessageEntity.message);
|
||||
}
|
||||
else
|
||||
{
|
||||
ResultMessageEntity resultMessageEntity =
|
||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||
if (resultMessageEntity.code != 200)
|
||||
{
|
||||
Debug.LogError(resultMessageEntity.message);
|
||||
}
|
||||
|
||||
return resultMessageEntity;
|
||||
}
|
||||
return resultMessageEntity;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@@ -328,78 +406,16 @@ namespace Stary.Evo
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GET请求数据
|
||||
/// </summary>
|
||||
/// <param name="url">请求数据的URL地址</param>
|
||||
/// <param name="path">请求数据的路径</param>
|
||||
/// <returns></returns>
|
||||
public static async Task<ResultMessageEntity> Get(string url,string path)
|
||||
{
|
||||
if (!GetTokenState())
|
||||
{
|
||||
Debug.LogError("用户未登录,请先登录");
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 2001,
|
||||
message = "用户未登录,请先登录"
|
||||
};
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
string fullUrl = url.TrimEnd('/') + "/" + path.TrimStart('/');
|
||||
using UnityWebRequest webRequest = UnityWebRequest.Get(fullUrl);
|
||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||
if (authorization != null)
|
||||
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
||||
|
||||
webRequest.timeout = 20;
|
||||
await webRequest.SendWebRequest();
|
||||
|
||||
// 增强错误处理
|
||||
if (webRequest.result != UnityWebRequest.Result.Success)
|
||||
{
|
||||
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
||||
$"URL: {url}\n" +
|
||||
$"Error: {webRequest.error}\n" +
|
||||
$"Response: {webRequest.downloadHandler.text}";
|
||||
|
||||
Debug.LogError(errorMsg);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = errorMsg
|
||||
};
|
||||
}
|
||||
|
||||
ResultMessageEntity resultMessageEntity =
|
||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||
if (resultMessageEntity.code != 200)
|
||||
{
|
||||
Debug.LogError(resultMessageEntity.message);
|
||||
}
|
||||
|
||||
return resultMessageEntity;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"UnityEvo:WebRequestSystem.Get" + e.Message);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = e.Message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete请求数据
|
||||
/// 携带数据:否
|
||||
/// 幂等性:是
|
||||
/// </summary>
|
||||
/// <param name="url">请求数据的URL地址</param>
|
||||
/// <param name="path">请求数据的路径</param>
|
||||
/// <returns></returns>
|
||||
public static async Task<ResultMessageEntity> Delete(string url,string path)
|
||||
public static async Task<ResultMessageEntity> Delete(string url, string path)
|
||||
{
|
||||
if (!GetTokenState())
|
||||
{
|
||||
@@ -415,7 +431,7 @@ namespace Stary.Evo
|
||||
{
|
||||
// 修复URL拼接
|
||||
string fullUrl = url.TrimEnd('/') + "/" + path.TrimStart('/');
|
||||
using UnityWebRequest webRequest = UnityWebRequest.Delete(fullUrl);
|
||||
using UnityWebRequest webRequest = new UnityWebRequest(fullUrl, UnityWebRequest.kHttpVerbDELETE);
|
||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||
if (authorization != null)
|
||||
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
||||
@@ -438,6 +454,7 @@ namespace Stary.Evo
|
||||
message = errorMsg
|
||||
};
|
||||
}
|
||||
|
||||
// 修复空响应处理
|
||||
string responseText = webRequest.downloadHandler.text;
|
||||
if (string.IsNullOrEmpty(responseText))
|
||||
@@ -448,6 +465,7 @@ namespace Stary.Evo
|
||||
message = "删除成功"
|
||||
};
|
||||
}
|
||||
|
||||
ResultMessageEntity resultMessageEntity =
|
||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||
if (resultMessageEntity.code != 200)
|
||||
@@ -467,6 +485,94 @@ namespace Stary.Evo
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// PUT请求数据
|
||||
/// 携带数据:是
|
||||
/// 幂等性:是
|
||||
/// </summary>
|
||||
/// <param name="url">请求数据的URL地址</param>
|
||||
/// <param name="path">请求数据的路径</param>
|
||||
/// <param name="putData">要更新的数据(JSON格式)</param>
|
||||
/// <returns></returns>
|
||||
public static async Task<ResultMessageEntity> Put(string url, string putData)
|
||||
{
|
||||
if (!GetTokenState())
|
||||
{
|
||||
Debug.LogError("用户未登录,请先登录");
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 2001,
|
||||
message = "用户未登录,请先登录"
|
||||
};
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// 修复URL拼接
|
||||
|
||||
using UnityWebRequest webRequest = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPUT);
|
||||
|
||||
// 设置上传处理器
|
||||
byte[] putBytes = System.Text.Encoding.UTF8.GetBytes(putData);
|
||||
webRequest.uploadHandler = new UploadHandlerRaw(putBytes);
|
||||
webRequest.downloadHandler = new DownloadHandlerBuffer();
|
||||
|
||||
// 设置请求头
|
||||
webRequest.SetRequestHeader("Content-Type", "application/json");
|
||||
if (authorization != null)
|
||||
webRequest.SetRequestHeader("Authorization", authorization); // 修正请求头名称规范
|
||||
|
||||
webRequest.timeout = 20;
|
||||
await webRequest.SendWebRequest();
|
||||
|
||||
// 增强错误处理
|
||||
if (webRequest.result != UnityWebRequest.Result.Success)
|
||||
{
|
||||
var errorMsg = $"HTTP {webRequest.responseCode}\n" +
|
||||
$"URL: {url}\n" +
|
||||
$"Error: {webRequest.error}\n" +
|
||||
$"Response: {webRequest.downloadHandler.text}";
|
||||
|
||||
Debug.LogError(errorMsg);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = errorMsg
|
||||
};
|
||||
}
|
||||
|
||||
// 处理空响应
|
||||
string responseText = webRequest.downloadHandler.text;
|
||||
if (string.IsNullOrEmpty(responseText))
|
||||
{
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 200,
|
||||
message = "更新成功"
|
||||
};
|
||||
}
|
||||
|
||||
ResultMessageEntity resultMessageEntity =
|
||||
JsonConvert.DeserializeObject<ResultMessageEntity>(webRequest.downloadHandler.text);
|
||||
if (resultMessageEntity.code != 200)
|
||||
{
|
||||
Debug.LogError(resultMessageEntity.message);
|
||||
}
|
||||
|
||||
return resultMessageEntity;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"UnityEvo:WebRequestSystem.Put" + e.Message);
|
||||
return new ResultMessageEntity()
|
||||
{
|
||||
code = 5001,
|
||||
message = e.Message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public static bool GetTokenState()
|
||||
{
|
||||
if (string.IsNullOrEmpty(authorization))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "com.staryevo.main",
|
||||
"version": "2.0.6",
|
||||
"version": "2.0.7",
|
||||
"displayName": "00.StaryEvo",
|
||||
"description": "This is an Framework package(后台服务器版本,端口9527)",
|
||||
"unity": "2021.3",
|
||||
|
||||
@@ -12,20 +12,50 @@ namespace Stary.Evo.Editor
|
||||
public class CreatPointCloudEntity
|
||||
{
|
||||
private CreatPointCloudWindow window;
|
||||
[HideInInspector]
|
||||
public string id;
|
||||
[HorizontalGroup("identifier")] [ReadOnly] public string sceneName;
|
||||
[HorizontalGroup("identifier")][ReadOnly]
|
||||
[HideInInspector] public string id;
|
||||
|
||||
[HorizontalGroup("identifier")] [ReadOnly]
|
||||
public string sceneName;
|
||||
|
||||
[HorizontalGroup("identifier")] [ReadOnly]
|
||||
public string identifier;
|
||||
[ReadOnly]
|
||||
public string sceneDesc;
|
||||
[HorizontalGroup("button")]
|
||||
public bool isActive;
|
||||
|
||||
[ReadOnly] public string sceneDesc;
|
||||
[HorizontalGroup("button")] public bool isActive;
|
||||
|
||||
public CreatPointCloudEntity(CreatPointCloudWindow window)
|
||||
{
|
||||
this.window = window;
|
||||
}
|
||||
|
||||
[HorizontalGroup("button")]
|
||||
[Button("", Icon = SdfIconType.ArrowUpCircleFill, IconAlignment = IconAlignment.RightEdge)]
|
||||
public async void UpdatePointCloud()
|
||||
{
|
||||
string ip = EditorPrefs.GetString("ip");
|
||||
if (string.IsNullOrEmpty(ip))
|
||||
{
|
||||
EditorUtility.DisplayDialog("提示", "ip不能为空", "确定");
|
||||
return;
|
||||
}
|
||||
|
||||
var scene = new
|
||||
{
|
||||
id = id,
|
||||
sceneName = sceneName,
|
||||
sceneDesc = sceneDesc,
|
||||
isActive = isActive,
|
||||
};
|
||||
string body = JsonConvert.SerializeObject(scene);
|
||||
ResultMessageEntity entity = await WebRequestSystem.Put($"{ip}/SceneWork/UpdateScene", body);
|
||||
if (entity.code == 200)
|
||||
{
|
||||
|
||||
EditorUtility.DisplayDialog("提示", $"更新成功{scene}", "确定");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[HorizontalGroup("button")]
|
||||
[Button("", Icon = SdfIconType.XCircle, IconAlignment = IconAlignment.RightEdge)]
|
||||
public async void DeletePointCloud()
|
||||
@@ -36,13 +66,13 @@ namespace Stary.Evo.Editor
|
||||
EditorUtility.DisplayDialog("提示", "ip不能为空", "确定");
|
||||
return;
|
||||
}
|
||||
ResultMessageEntity entity = await WebRequestSystem.Delete(ip,$"/SceneWork/DeleteScenebyId/{id}");
|
||||
if (entity.code ==200)
|
||||
|
||||
ResultMessageEntity entity = await WebRequestSystem.Delete(ip, $"/SceneWork/DeleteScenebyId/{id}");
|
||||
if (entity.code == 200)
|
||||
{
|
||||
window.SceneWorkEntities.Remove(this);
|
||||
EditorUtility.DisplayDialog("提示", "删除成功", "确定");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "com.pointcloud",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"displayName": "11.PointCloudTools",
|
||||
"description": "点云开发工具",
|
||||
"unity": "2021.3",
|
||||
|
||||
Reference in New Issue
Block a user