unitywebrequest POST发送json
时间: 2025-02-12 10:40:42 浏览: 42
### 如何使用 Unity `UnityWebRequest` 通过 POST 方法发送 JSON 数据
在 Unity 中,可以利用 `UnityWebRequest` 类来执行 HTTP 请求。对于向服务器发送 JSON 数据的需求,通常会采用 POST 方法。
创建并配置一个用于发送 JSON 的请求涉及几个步骤:
#### 创建 JSON 对象
首先定义要发送的数据结构,并将其序列化为 JSON 字符串。假设有一个简单的用户对象作为示例外:
```csharp
public class User {
public string name;
public int age;
public User(string n, int a){
this.name = n;
this.age = a;
}
}
```
接着实例化该类并将其实例转换成字符串表示形式:
```csharp
User user = new User("John Doe", 30);
string jsonBody = JsonUtility.ToJson(user);
```
这里使用了内置工具 `JsonUtility` 来完成这一过程[^1]。
#### 构建 Web Request 并设置头部信息
为了确保服务器能够正确解析接收到的内容,还需要指定 Content-Type 为 application/json :
```csharp
using UnityEngine.Networking;
// ...
UnityWebRequest request = new UnityWebRequest(url, "POST");
byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonBody);
request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
if(request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError) {
Debug.LogError(request.error);
} else {
Debug.Log("Response from server: "+request.downloadHandler.text);
}
```
这段代码展示了如何构建带有适当头文件的 POST 请求以及处理可能发生的错误情况[^2]。
以上就是完整的流程说明,在实际项目里可以根据具体需求调整参数或增加额外的功能特性。
阅读全文
相关推荐


















