2011-02-17 18 views
3

當我嘗試點擊推送網址時,出現401錯誤。我使用HTTP BASIC身份驗證和「應用程序密鑰」作爲用戶名,「應用程序主密鑰」作爲密碼。我正在使用JAVA HttpsUrlConnection類。我不知道我的代碼有什麼問題。401錯誤,使用httpsurlconnection類的urbanairship

`   URL url = new URL("https://go.urbanairship.com/api/push"); 
      HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); 
      connection.setRequestMethod("POST"); 
      connection.setDoOutput(true); 
      connection.setDoInput(true); 
      connection.setUseCaches(false); 
      connection.setRequestProperty("Content-Type","application/json"); 
      connection.setRequestProperty("Content-Length", Integer.toString(data.length())); 

      String authString = "xxxxxxxxxxxxxxxxxx:yyyyyyyyyyyyyyyyy"; 
      authString = Base64Coder.encodeString(authString); 
      connection.setRequestProperty("Authorization","Basic "+ authString); 
      OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); 
      wr.write(data); 
      wr.flush(); 

      int responseCode = connection.getResponseCode(); 

      //Get the response 
      String responseLine = new BufferedReader(new InputStreamReader(connection.getInputStream())).readLine();` 

回答

2

您的身份驗證字符串應該由<application-key>:<application-master-secret>組成。此外,您的authstring可能無法正確編碼。嘗試使用Apache Commons Codecostermiller庫來編碼授權字符串

+0

即使在上面的代碼中添加「ostermiller」lib後也會出現相同的錯誤...任何建議? – turbo 2012-08-25 22:14:32