2013-04-19 65 views
1

Itry創建到URL的連接以檢查上次內容修改,並將創建的用戶名/密碼作爲基本身份驗證。返回的修改時間應與最後修改時間一起檢查並存儲以供參考。如果修改時間較新(較高),則應下載其餘內容。連接到未經授權的

我在嘗試建立連接時遇到了自動化問題。

這裏是我做的:

我的用戶名和密碼:

String username = "haythem"; 
String key ="FU2ra88xuhuf6-#At+aseQub8f8ebr$sweh$thu!Ep?*frusAvEdRamuw9thubr"; 
String password = AeSimpleSHA1.SHA1(key + username); 

我SHA1代碼:

public static String SHA1(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException { 
     MessageDigest md = MessageDigest.getInstance("SHA-1"); 
     md.update(text.getBytes("UTF-8"), 0, text.length()); 
     byte[] sha1hash = md.digest(); 
     return convertToHex(sha1hash); 
    } 

我的web服務代碼:

String mUrl = "http://app-vantage.appspot.com/api4/modified"; 
HttpGet request = new HttpGet(mUrl); 
HttpParams params = new BasicHttpParams(); 
params.setParameter("Authorization", "Basic " + android.util.Base64.encodeToString((username + ":" + password).getBytes(), android.util.Base64.DEFAULT)); 
params.setParameter("User-Agent", "SDKDemo/1.0"); 
request.setParams(params); 

現在我得到401錯誤。

狀態= 401

<html><head> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
<title>401 UNAUTHORIZED</title> 
/head> 
<body text=#000000 bgcolor=#ffffff> 
<h1>Error: UNAUTHORIZED</h1> 
</body></html> 

我不知道什麼是Web服務走錯了......

這裏是文檔,我得到:

認證 階段1需要通過具有基本身份驗證的HTTPS。使用的基本身份驗證是一個生成的用戶名(生成一個4類UUID)和作爲密碼的應用程序密鑰加上用戶名爲UTF-8散列,SHA-1以十六進制形式發送。例如用 「ABCD」 的應用程序鍵和的1111至2222年一個surename的數據是:

用戶名:1​​111年至2222年 密碼:SHA1(abcd1111-2222)= 970e1294ff2abd10d037ec73988646584bd8840e

從而: 驗證:基本MTExMS0yMjIyOjk3MGUxMjk0ZmYyYWJkMTBkMDM3ZWM3Mzk4ODY0NjU4NGJkODg0MGU =

回答

5

有一些事情,馬上跳出:

  1. 您試圖訪問在U RL http: //app-vantage.appspot.com/api4/modified,但根據您的描述,您需要使用https:

  2. 你的描述說「生成的用戶名(生成類型4 UUID)」(這意味着隨機)。但是,您的用戶名(「haythem」)似乎並不特別隨機。

    此外,你應該確認以下內容:

  3. 確認您convertToHex()函數返回相同的情況下,服務器端的期待。如果您使用大寫字母生成一個十六進制,並且他們期望使用小寫字母,則有時會導致錯誤。

  4. 如果您碰巧有權訪問服務器端,請嘗試查看日誌以查看發生了什麼。

相關問題