2013-04-19 35 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. 如果您碰巧有权访问服务器端,请尝试查看日志以查看发生了什么。

相关问题