0

我正在为 WebGL 将 Parse 与 Unity 集成。由于 Parse 插件目前不能与 WebGL 一起使用,我不得不使用 REST API(或编辑源代码,它一直没有工作)。不幸的是,Parse 没有任何关于如何在 Unity/WebGL 应用程序中使用 REST API 的文档,所以我什至不确定我是否做得对。无论如何,尝试使用我在下面发布的代码注册只会给我一个“401 Unauthorized”错误,至少在 Unity 编辑器中是这样(我目前无法测试我的服务器上的实际构建是否会做任何不同的事情)。我也尝试过使用客户端密钥而不是 REST-API 密钥,但效果相同。有人可以告诉我从这里去哪里吗?

这是我的代码:

string url = "https://api.parse.com/1/users";
WWWForm form = new WWWForm();
form.AddField("X-Parse-Application-Id", APP_ID);
form.AddField("X-Parse-REST-API-Key", REST_ID);
form.AddField("X-Parse-Revocable-Session", 1);
form.AddField("Content-Type", "application/json");
string newDataString = "{\"username\":\"" + email + "\",\"password\":\"" + password + "\",\"email\":\"" + email + "\"}";
WWW www = new WWW(url, System.Text.Encoding.UTF8.GetBytes(newDataString), form.headers);
4

1 回答 1

0

401 错误似乎指向了一个方向:标头格式不正确。例如,我遇到了同样的错误,因为在 Authorization 标头的文本字段中,= 和 " 字符之间有一个空格,如下所示:

token= "ajifidjoa...

因此,首先,我建议您使用 Postman 或任何其他适用于 Chrome 的 REST 客户端插件,并使用它们测试您的通话。这样,您应该能够更好地了解错误隐藏的位置。

此外,在 Unity 中使用 REST 调用时,我发现 WebClient 更适合进行 POST;示例代码:

        using (var client = new WebClient())
        {
            client.Headers[HttpRequestHeader.ContentType] = "application/json";
            result = client.UploadString(url, "POST", json_string_to_post);
        }
于 2016-02-10T11:29:57.710 回答