2014-07-03 167 views
1

我在Parse.com雲中創建了一個數據庫。我現在需要在Google App Engine應用程序中編寫一個Servlet來調用Parse上的REST服務。 REST服務需要 用戶認證,它是Parse應用程序標識和Javascript鍵。從Google App Engine調用Parse.com REST服務

... 
      URL url = new URL("https://api.parse.com/1/classes/OBJECT"); 
      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      connection.setRequestProperty("Content-Type", "application/json"); 

      Base64 enc = new Base64(); 
      String userpassword = "{PARSE_APP_ID}" + ":" + "javascript-key={PARSE_JS_KEY}"; 
      String encodedAuthorization = enc.encodeBase64String(userpassword.getBytes()); 
      connection.setRequestProperty("Authorization", "Basic " + encodedAuthorization); 
      connection.setRequestMethod("GET"); 
... 

我使用org.apache.commons.codec.binary.Base64進行編碼以獲得REST調用認證。

的Parse.com REST API建議使用以下格式要求做出HTTP調用:

https://myAppID:[email protected]/1/classes/GameScore/Ed1nuqPvcm 

的問題是,我一直得到

{ 「錯誤」: 「未經授權」 }

是否有任何人使用經過身份驗證的REST服務的經驗?謝謝!

編輯。

URL url = new URL("https://api.parse.com/1/classes/OBJECT"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setRequestProperty("X-Parse-Application-Id", "{APP_ID}"); 
connection.setRequestProperty("X-Parse-REST-API-Key", "REST_ID"); 
connection.setRequestProperty("Content-Type", "application/json"); 

我仍然得到了同樣的錯誤,而responseCode是「200」。

乾杯,

回答

1

使用認證頭版本來代替:

connection.setRequestProperty("X-Parse-Application-Id", "app id here"); 
connection.setRequestProperty("X-Parse-REST-API-Key", "rest key here"); 
+0

感謝您的答覆。但是在我做出改變後,我仍然遇到同樣的錯誤。 – alextc

+0

你確定你使用正確的應用程序ID和其他密鑰嗎?未經授權的消息是另有說明。 – Fosco

+0

https://www.evernote.com/shard/s53/sh/0b483880-ef94-4918-8e18-2056263b0bc1/7c4d070a001adb36cbb602f497989fc4 – Fosco