1

为了简短起见,尝试让 Unity 客户端工作。它正在向“http://localhost:8000/api/board”发出一个简单的 Get 请求。此请求工作正常:

  • 在我的浏览器中
  • 邮差
  • .net 在 Unity 编辑器模式下的 HttpClient
  • 如果我构建并运行 WebGL 构建,则生成的网页将起作用(必须首先将 CORS 设置添加到服务器)

它不适用于 Unity 编辑器模式下的 UnityWebRequest,尽管这非常令人沮丧,但构建 webgl 需要很长时间。

我不知道为什么它不起作用。“https://httpbin.org/get”等其他路由在编辑器模式下工作正常。我觉得它与UnityWebRequest有关。我也试过关闭防火墙。我正在使用 Unity 2021.2.7f1,这一切都是在为 windows 构建时在编辑器中运行的。

下面工作正常:

HttpClient client = new HttpClient();
System.Uri uri = new System.Uri("http://localhost:8000/api/board");
string responseBody = await client.GetStringAsync(uri);

以下失败并显示“无法连接到目标主机”错误响应:

System.Uri uri = new System.Uri("http://localhost:8000/api/board");
UnityWebRequest www = UnityWebRequest.Get(uri);
UnityWebRequestAsyncOperation operation = www.SendWebRequest();

while (!operation.isDone)
    await Task.Yield();

if (www.result != UnityWebRequest.Result.Success)
{
    // Error stuff
}

编辑:

使固定

原来问题出在我用 Rust Rocket 制作的服务器上。我把它设置为默认值address = "localhost"。我将其更改为address = "0.0.0.0",现在它在编辑器播放模式下工作正常。我不知道为什么 0.0.0.0 工作但 localhost 没有。

4

1 回答 1

0

原来问题出在我用 Rust Rocket 制作的服务器上。我把它设置为默认值address = "localhost"

我将其更改为address = "0.0.0.0",现在它在编辑器播放模式下工作正常。我不知道为什么 0.0.0.0 工作但 localhost 没有。

于 2021-12-30T17:25:36.780 回答