1

作成されたユーザー名/パスワードを基本認証として使用して、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 を生成) であり、パスワードとしてアプリケーション キーとユーザー名が SHA-1 でハッシュされた UTF-8 として 16 進数として送信されます。たとえば、アプリケーション キーが「abcd」で、確実な名前が 1111-2222 の場合、データは次のようになります。

ユーザー名: 1111-2222 パスワード: SHA1(abcd1111-2222) = 970e1294ff2abd10d037ec73988646584bd8840e

したがって: 認証: 基本 MTExMS0yMjIyOjk3MGUxMjk0ZmYyYWJkMTBkMDM3ZWM3Mzk4ODY0NjU4NGJkODg0MGU=

4

1 に答える 1

5

すぐに飛び出すことがいくつかあります。

  1. URL http: //app-vantage.appspot.com/api4/modifiedにアクセスしようとしていますが、説明によると、 https:を使用する必要があります。

  2. あなたの説明には、「生成されたユーザー名(タイプ4 UUIDを生成する)」と書かれています(これはランダムを意味します)。ただし、あなたのユーザー名 (「haythem」) は特にランダムではないようです。

    さらに、次のことを確認する必要があります。

  3. convertToHex()関数がサーバー側が期待するのと同じケースを返すことを確認します。大文字の 16 進数を生成していて、小文字を想定している場合、エラーが発生することがあります。

  4. サーバー側にアクセスできる場合は、ログを見て何が起こっているかを確認してください。

于 2013-04-21T20:31:39.903 に答える