0

こんにちは、Google apis からリクエスト トークンを取得しようとしています。リクエスト トークンを取得するには、文字列の Java コード セグメントで辞書式のバイト値の順序でパラメータ文字列を並べ替える必要があります。

String datastring=URLEncoder.encode("oauth_version", "UTF-8")+"="+URLEncoder.encode("1.0", "UTF-8");


  datastring+="&"+URLEncoder.encode("oauth_nonce", "UTF-8")+"="+URLEncoder.encode(System.currentTimeMillis()+"","UTF-8");

  datastring+="&"+URLEncoder.encode("oauth_timestamp", "UTF-8")+"="+URLEncoder.encode(System.currentTimeMillis()/1000+"","UTF-8");

    datastring+="&"+URLEncoder.encode("oauth_consumer_key","UTF-8")+"="+URLEncoder.encode("iriteshmehandiratta.appspot.com","UTF-8");

    datastring+="&"+URLEncoder.encode("oauth_signature_method","UTF-8")+"="+URLEncoder.encode("RSA-SHA1", "UTF-8"); 

    datastring+="&"+URLEncoder.encode("oauth_signature", "UTF-8")+"="+URLEncoder.encode(myrsakey, "UTF-8");

datastring+="&"+URLEncoder.encode("oauth_callback","UTF-8")+"="+URLEncoder.encode("https://www.iriteshmehandiratta.appspot.com/authsub","UTF-8");

datastring+="&"+URLEncoder.encode("scope","UTF-8")+"="+URLEncoder.encode("http://www.google.com/calendar/feeds","UTF-8");

クエリ文字列のパラメーターをエンコードしました。投稿リクエストを URL https://www.google.com/accounts/OAuthGetRequestTokenに送信するためにデータ文字列を辞書順に並べ替える必要があり ます。この文字列を Java で辞書順に並べ替える方法を教えてください。

4

1 に答える 1

0

Javaを使用しますTreeMap。これにより、OAuthパラメーターをキーとして使用し、次に値を指定した値として使用できるようになります。

最初にすべてのパラメータをに追加してから、を繰り返してURLクエリ文字列を作成することをお勧めしTreeMapますSet<Entry<String, String>>

TreeMap州の仕様:

マップは、使用されているコンストラクターに応じて、キーの自然な順序に従って、またはComparatorマップ作成時に提供された順序に従って並べ替えられます。

于 2013-01-09T09:47:05.167 に答える