0

我需要在 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 方法直接将图像返回给客户端。

Failed to receive data客户端将图像发送到服务器的所有 POST 方法都可以正常工作,而我在 Unity 编辑器中遇到错误。

4

1 回答 1

0

问题只是我没有将内容长度放在标题中。所以服务器部分应该是:

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
于 2019-03-22T11:50:49.100 回答