request.isNetworkError || request.isHttpError 此方法弃用了
时间: 2024-01-21 20:04:29 浏览: 127
是的,Unity 2020.1 版本之后,`isHttpError` 和 `isNetworkError` 方法已经被弃用。取而代之的是`WebRequest.Result`属性和`UnityWebRequest.result`属性。你可以使用以下代码来检查网络请求是否成功:
```csharp
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{
// 网络请求发生错误
}
else
{
// 网络请求成功
}
```
请注意,这些属性的类型为`UnityWebRequest.Result`,需要使用`using UnityEngine.Networking`导入命名空间。
相关问题
request.isNetworkError || request.isHttpError 弃用
是的,Unity 2020.1 版本开始,`request.isNetworkError` 和 `request.isHttpError` 这两个属性已经被弃用,开发者应该使用 `request.result` 属性来代替。`request.result` 是一个包含请求结果的 `UnityWebRequest.Result` 枚举类型的值,具体可参考 Unity 的文档。例如,检查请求是否出现网络错误或 HTTP 错误的代码可以修改为:
```csharp
if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError)
{
// 处理网络错误或 HTTP 错误
}
```
var request = new UnityWebRequest(url, "POST"); byte[] bodyRaw = Encoding.UTF8.GetBytes(json); 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.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError) { Debug.LogError(request.error); }
如果您想要在 Unity 中使用 Result 枚举类型来判断网络请求是否成功,可以使用以下代码:
```
var request = new UnityWebRequest(url, "POST");
byte[] bodyRaw = Encoding.UTF8.GetBytes(json);
request.uploadHandler = (UploadHandler)new UploadHandlerRaw(bodyRaw);
request.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
yield return request.SendWebRequest();
if (request.isNetworkError || request.isHttpError)
{
Debug.LogError(request.error);
}
```
这段代码中使用了 `request.isNetworkError` 和 `request.isHttpError` 来判断网络请求是否成功。如果 `isNetworkError` 或 `isHttpError` 为 true,则表示发生了网络错误或 HTTP 错误,可以通过 `request.error` 获取错误信息。
阅读全文