当前位置: 首页 > news >正文

UnityWebRequest 数据获取和提交

文件读取

using UnityWebRequest request = UnityWebRequest.Get(filePath);
yield return request.SendWebRequest();
if (string.IsNullOrEmpty(request.error))
{string content = request.downloadHandler.text;//string patternInt = "(\"KEY\".?:)([^,}]*)";string patternString = "(\"KEY\".?:.?\")(.*?)\"";//string pattern = patternInt.Replace("KEY", key);string pattern = patternString.Replace("KEY", key);Regex regex = new Regex(pattern);Match match = regex.Match(content);value = match.Success ? match.Groups[2].ToString().Trim() : string.Empty;
}
else
{Debug.Log("Error");
}

Get

using UnityWebRequest request = UnityWebRequest.Get(url);
request.SetRequestHeader("x", "x");
request.SetRequestHeader("xx", "xx");
request.SetRequestHeader("xxx", "xxx");
yield return request.SendWebRequest();
//if (request.isNetworkError || request.isHttpError)
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{Debug.Log("Error");
}
else
{Debug.Log(request.downloadHandler.text);
}

Post by WWWForm

WWWForm form = new WWWForm();
form.AddField("x", "x");
form.AddField("xx", "xx");
form.AddField("xxx", "xxx");
using UnityWebRequest request = UnityWebRequest.Post(url, form);
request.SetRequestHeader("x", "x");
request.SetRequestHeader("xx", "xx");
request.SetRequestHeader("xxx", "xxx");
yield return request.SendWebRequest();
//if (request.isNetworkError || request.isHttpError)
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{Debug.Log("Error");
}
else
{Debug.Log(request.downloadHandler.text);
}

Post by Json

json = JsonUtility.ToJson(data);
using UnityWebRequest request = new UnityWebRequest(url, "POST");
if (!string.IsNullOrEmpty(json))
{byte[] bytes = System.Text.Encoding.Default.GetBytes(json);request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bytes);
}
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("charset", "utf-8");
request.SetRequestHeader("x", "x");
request.SetRequestHeader("xx", "xx");
request.SetRequestHeader("xxx", "xxx");
yield return request.SendWebRequest();
//if (request.isNetworkError || request.isHttpError)
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{Debug.Log("Error");
}
else
{Debug.Log(request.downloadHandler.text);
}

数据简单处理

例:

数据类

[Serializable]
public class ResultData
{public string message;public ListData data;
}
[Serializable]
public class ListData
{public string key;public List<Example> examples = new List<Example>();
}
[Serializable]
public class Example
{public string example;
}

JsonUtility.FromJson

ResultData resultData = JsonUtility.FromJson<ResultData>(result);
Debug.Log(resultData.data.examples[0].example);

JsonConvert.DeserializeObject

JObject keyValuePairs = JsonConvert.DeserializeObject<JObject>(result);
foreach (var item in jObj)
{if (item.Key == "data"){dataContent = item.Value;break;}
}
keyValuePairs = JsonConvert.DeserializeObject<JObject>(dataContent);
JArray jArray = JsonConvert.DeserializeObject<JArray>(keyValuePairs["list"].ToString());
for (int i = 0; i < jArray.Count; i++)
{if (!string.IsNullOrEmpty(itemData)){Example example = JsonConvert.DeserializeObject<Example>(itemData);list.Add(example);}
}
Debug.Log(list[0].example);
http://www.dtcms.com/a/364932.html

相关文章:

  • 深度学习-----简单入门卷积神经网络CNN的全流程
  • 异常处理小妙招——3.构造函数的安全第一原则:为什么不在构造函数中抛出异常?
  • Python爬虫实战:研究Pie and polar charts模块,构建电商数据采集和分析系统
  • 揭秘设计模式:优雅地为复杂对象结构增添新功能-访问者模式
  • 给你的应用穿上“外衣”:React中的CSS方案对比与实践
  • 【Linux】线程封装
  • 组长跟我说,她招人看重的是数据分析能力
  • 基于数据挖掘的当代不孕症医案证治规律研究
  • 从0 死磕全栈第3天:React Router (Vite + React + TS 版):构建小时站实战指南
  • 什么是 Java 的反射机制?它有什么优缺点?
  • 20250903的学习笔记
  • 百度发布Comate AI IDE,我要把Cursor卸载了!
  • 机器学习从入门到精通 - 逻辑回归为什么是分类之王?深入决策边界与概率校准
  • 《嵌入式硬件(一):裸机概念与80c51单片机基础》
  • “十五五”国家科技创新规划-建议
  • 百度智能云「智能集锦」自动生成短剧解说,三步实现专业级素材生产
  • Netty + WebSocket:搭建快速且稳定的双向通信通道
  • word文档中从某一页开始页码全是1
  • Wpf程序屏幕居中问题修复全记录
  • 39.Ansible: 包含与导入
  • FastVLM:高效视觉编码助力视觉语言模型突破高分辨率效率瓶颈
  • 独家|字节Seed部门增发百万期权,大模型战线开启“锁人”模式
  • 【golang长途旅行第37站】Redis连接池
  • MMD动画(一)模型、动作、音乐导入
  • 【大前端】React 父子组件通信、子父通信、以及兄弟(同级)组件通信
  • 科技赋能田园:数字化解决方案开启智慧农业新篇章
  • centos9 docker启动不起来,docker启动发生堵塞问题!
  • 【明道云】[工作表控件5] 手机控件的格式化处理
  • 【机器学习】实战:市场增长点分析挖掘项目
  • SyncBack 备份同步软件: 使用增量备份, 节省网络传输及存储成本