2015-12-14 3 views
0

Я работаю над интеграцией Parse with Unity для WebGL. Поскольку плагин Parse в настоящее время не работает с WebGL, я вынужден использовать REST API (или редактировать исходный код, который не работал). К сожалению, у Parse нет документации о том, как использовать REST API в приложении Unity/WebGL, поэтому я даже не уверен, что я делаю это правильно. Несмотря на это, попытка зарегистрироваться с кодом, который я опубликовал ниже, дает мне ошибку «401 Unauthorized», по крайней мере, в редакторе Unity (в настоящее время я не могу проверить, будет ли фактическая сборка на моем сервере делать что-то другое). Я также пытался использовать ключ клиента вместо REST-API Key, но это имело тот же эффект. Может ли кто-нибудь дать мне указания о том, куда идти отсюда?Unity WebGL/Parse Регистрация через REST API возвращает Unauthorized

Вот мой код:

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); 

ответ

0

Ошибка 401, кажется, указывает на направление: заголовки не отформатирован. В качестве примера, я получаю ту же ошибку, потому что в текстовом поле заголовка Authorization был пробел между = и "символы, например:

token= "ajifidjoa... 

Итак, во-первых, я предлагаю вам используйте что-то вроде Postman или любых других плагинов клиента REST для Chrome и протестируйте свой звонок, используя их. Таким образом, вы должны быть в состоянии лучше понять, где спрятана ошибка.

Кроме того, работая с вызовами REST в Unity, я обнаружил, что WebClient лучше подходит для выполнения POST, код примера:

 using (var client = new WebClient()) 
     { 
      client.Headers[HttpRequestHeader.ContentType] = "application/json"; 
      result = client.UploadString(url, "POST", json_string_to_post); 
     }