【问题标题】:Send POST request with Image from Unity3D从 Unity3D 发送带有图像的 POST 请求
【发布时间】:2017-03-30 06:03:32
【问题描述】:

我正在尝试从 Unity 向我的 NodeJS API 发送图像,但不幸的是我无法让它工作。这是我的 c# 代码的摘录:

private string POSTUrl = "http://myNodeJSAPI.com/upload-image";
private Dictionary<string, string> postHeader = new Dictionary<string, string>();

public WWW POST() {
    WWW www;
    postHeader["content-Type"] = "application/octet-stream";
    postData = File.ReadAllBytes("Assets/Resources/ImageIWantToSend.png");
    www = new WWW(POSTUrl, postData, postHeader);
    StartCoroutine(WaitForRequest(www));
    return www;
}

IEnumerator WaitForRequest(WWW www)
{
    yield return www;
    if (www.error == null)
    {
        Debug.Log("WWW Ok!: " + www.text);
    }
    else
    {
        Debug.Log("WWW Error: " + www.error);
    }
}

这里是我的 nodejs one 的相关部分:

app.post('/upload-image', rawBody, function (req, res) {
        console.log("File received!");
        if (req.rawBody && req.bodyLength > 0) {
            fs.writeFile("/tmp/ImageIWantToSend.png", req.rawBody, function (err) {
                if (err) {
                    return console.log(err);
                }
                console.log("Image has been saved! Starting other things...");
            })
        }
    }

请求已发送,但 API 从未收到(我收到 503 bad gateway)。我在 Unity 外部尝试了相同的请求,它似乎可以工作(使用 Postman:基本发布请求,图像附加为二进制文件)。

是我犯了错误,还是有其他方法可以做到这一点? 谢谢!

编辑:我终于通过将application/octet-stream 更改为text/html 解决了这个问题。如果有更好的方式将数据发送到 Nodejs 我仍然感兴趣

【问题讨论】:

    标签: c# node.js unity3d


    【解决方案1】:

    查看 Unity 的新 UnityWebRequest class。它是原始 WWW 的替代品。

    您还可以使用 C# WebClient 或 HttpWebRequest 类。如果您不使用 WebGL 构建,它们可以与 Unity 一起使用。

    这也是一个good unity plugin 来处理请求,虽然它不是免费的。

    【讨论】:

    • 哦,谢谢,我没有看到 UnityWebRequest,我会看看这个。
    • 我一直在查看那些相同的文档,按照它的建议做......我可以让它发出 POST 请求,但它不包括我想要的任何数据包括。想知道我做错了什么......
    • 那么如何使用 UnityWebRequest 完成该过程?
    猜你喜欢
    • 2020-09-08
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2020-05-24
    • 2018-04-20
    • 2011-04-12
    相关资源
    最近更新 更多