在 Unity 2018 中从服务器获取图像
Get image from a server in Unity 2018
我需要在我的 Unity3D 客户端应用程序中使用 wgsi 从一个简单的服务器接收图像。我的代码现在看起来像这样:
服务器部分:
if environ['REQUEST_METHOD'] == 'GET':
status = '200 OK'
headers = [('Content-type', 'image/png')]
start_response(status, headers)
return open("./static/uploads/04b32b3b6249487fbe042cadc97748b5.png", "rb").read()
客户:
UnityWebRequest www = UnityWebRequestTexture.GetTexture(uploadURL);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
Debug.Log("gno");
this.GetComponent<RawImage>().texture = DownloadHandlerTexture.GetContent(www);
}
}
我的疑问是 UnityWebRequestTexture.GetTexture()
总是采用直接指向图像的 URL,而在我的情况下它没有,但是 GET 方法直接 returns 图像给客户。
客户端向服务器发送图像的所有 POST 方法都没有问题,而我在 Unity 编辑器中遇到 Failed to receive data
错误。
问题很简单,我没有将内容长度放在 headers 中。所以服务器部分应该是:
if environ['REQUEST_METHOD'] == 'GET':
status = '200 OK'
headers = [('Content-type', 'image/png')]
img=open("./static/uploads/"+"imageName", "rb").read()
start_response(status,[
('Content-type', 'image/png'),
('Content-Length', str(len(img))),
])
return img
我需要在我的 Unity3D 客户端应用程序中使用 wgsi 从一个简单的服务器接收图像。我的代码现在看起来像这样:
服务器部分:
if environ['REQUEST_METHOD'] == 'GET':
status = '200 OK'
headers = [('Content-type', 'image/png')]
start_response(status, headers)
return open("./static/uploads/04b32b3b6249487fbe042cadc97748b5.png", "rb").read()
客户:
UnityWebRequest www = UnityWebRequestTexture.GetTexture(uploadURL);
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
Debug.Log("gno");
this.GetComponent<RawImage>().texture = DownloadHandlerTexture.GetContent(www);
}
}
我的疑问是 UnityWebRequestTexture.GetTexture()
总是采用直接指向图像的 URL,而在我的情况下它没有,但是 GET 方法直接 returns 图像给客户。
客户端向服务器发送图像的所有 POST 方法都没有问题,而我在 Unity 编辑器中遇到 Failed to receive data
错误。
问题很简单,我没有将内容长度放在 headers 中。所以服务器部分应该是:
if environ['REQUEST_METHOD'] == 'GET':
status = '200 OK'
headers = [('Content-type', 'image/png')]
img=open("./static/uploads/"+"imageName", "rb").read()
start_response(status,[
('Content-type', 'image/png'),
('Content-Length', str(len(img))),
])
return img