Base64の76文字制限
Base64で軽くはまった。 ■Amazon アソシエイト(アフィリエイト) - ヘルプ https://affiliate.amazon.co.jp/gp/associates/help/t126/a11
Base64 encoder = new Base64(); signature = new String(encoder.encode(rawHmac));インスタンス化してencodeメソッドを呼んでます。 ただ、これだと動作せず。 これをこう書き直すと動く。
signature = new String(Base64.encodeBase64(rawHmac));このサンプル通りに書いたわけじゃないから、このサンプルをそのまま使う分には問題ないのかもしれないけど、もし、動かないことがあったらお試しあれ。
このメソッドの違いは76文字制限をチェックするかしないからしい。 前者だとエンコードした文字列の末尾にCRLFが付く。 もしかしたら、この辺がうまくなかったのかもしれない。