1

サーバーの署名ベースを oauth に一致させる必要があります。これは、署名する前にすべてをパーセントでエンコードします。

Urlencoder.encode( base, UTF-8) ではなく Uri.encode を使用すると、空白と + が正しくエンコードされますが、予約されていない文字 ("_-!.~'()*") もエンコードする必要があります。

それらのために独自のユーティリティを作成するのはそれほど難しくありませんが、手動で変更する必要がなければいいでしょう。これにはすでにユーティリティがありますか?

4

1 に答える 1

2

追加のエンコードが必要な文字はほんの数文字であることがわかりました。大衆のために:

public static String encode(String base){
    String encoded = Uri.encode(base);
    encoded = encoded.replace("(", "%28");
    encoded = encoded.replace(")", "%29");
    encoded = encoded.replace("!", "%21");
    encoded = encoded.replace("\'", "%27");
    encoded = encoded.replace("*", "%2A");

    return encoded;
}
于 2012-04-13T17:02:41.457 に答える