unity UnityWebRequest
时间: 2025-06-29 08:13:16 浏览: 20
### Unity 中使用 `UnityWebRequest` 进行网络请求
#### 创建并发送 GET 请求
为了发起一个简单的 HTTP GET 请求,可以创建一个新的 `UnityWebRequest` 对象,并指定目标 URL 和请求方式。下面是一个基本的例子:
```csharp
using UnityEngine;
using UnityEngine.Networking;
public class WebRequestExample : MonoBehaviour
{
void Start()
{
string uri = "http://www.myserver.com/foo.txt";
UnityWebRequest myWr = UnityWebRequest.Get(uri); // 发起GET请求[^1]
StartCoroutine(SendRequest(myWr));
}
IEnumerator SendRequest(UnityWebRequest request)
{
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
Debug.LogError($"Error: {request.error}"); // 错误处理
}
else
{
Debug.Log(request.downloadHandler.text); // 输出响应内容
}
}
}
```
这段代码展示了如何构建一个 `UnityWebRequest` 实例来执行 GET 请求,并通过协程等待其完成。
#### 终止正在进行中的请求
如果希望中途取消某个正在运行的 `UnityWebRequest`,可以通过调用 `Abort()` 方法实现这一点。这将立即终止连接尝试或已建立的数据传输过程。一旦被中断,该对象会被标记为遇到系统级别的错误状态[^2]。
```csharp
if (someConditionToCancel)
{
myWr.Abort(); // 取消当前请求
}
```
当请求被成功中止后,检查 `isNetworkError` 或者 `isHttpError` 属性将会得到 true 的结果,而 `error` 字段则会显示 `"User Aborted"` 文本。
#### 常见构造函数和其他特性简介
除了上述提到的功能外,`UnityWebRequest` 类还提供了多种其他特性和构造选项供开发者利用。例如,可以根据具体需求自定义头部信息、设置超时时间等参数[^3]。
阅读全文
相关推荐



















