尝试创建到 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);
}
我的网络服务代码:
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>
我不知道网络服务出了什么问题......
这是文档,我得到了:
身份验证阶段 1 需要使用基本身份验证通过 HTTPS。使用的基本身份验证是生成的用户名(生成类型 4 UUID),密码是应用程序密钥加上用户名作为 UTF-8 哈希,SHA-1 以十六进制发送。例如,应用程序密钥为“abcd”,surename 为 1111-2222,数据为:
用户名:1111-2222 密码:SHA1(abcd1111-2222) = 970e1294ff2abd10d037ec73988646584bd8840e
因此: 身份验证:基本 MTExMS0yMjIyOjk3MGUxMjk0ZmYyYWJkMTBkMDM3ZWM3Mzk4ODY0NjU4NGJkODg0MGU=