UnityWebRequest 数据获取和提交

发布于:2025-09-08 ⋅ 阅读:(19) ⋅ 点赞:(0)

文件读取

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);

网站公告

今日签到

点亮在社区的每一天
去签到