2010-02-04 96 views
3

我想從Android執行對亞馬遜API的其他通話。 Amazon要求所有ws調用都將使用HMAC簽名(基於散列的消息認證碼)進行認證。 我缺少一個類似於Apache Base64對象的對象來簽署我的請求。 有沒有一種簡單的方法可以在Android中執行此操作,甚至有更好的方法可以使用Amazon Web服務(產品廣告API)的Android客戶端。亞馬遜通過Android休息通話

回答

2

您應該可以在項目中包含Apache Base64軟件包。

看到這個:http://www.delaytolerant.com/android-http-managing-base64-with-apache-commons-codec/

或者有任何基於Java的客戶端亞馬遜,你嘗試,包括在你的Android項目的罐子?

顯然上面的鏈接現在已經死亡。這裏是從Google's cache頁面的內容:

這篇文章繼續編程 在Android的HTTP。接下來, 我將演示如何管理Android中Base64編碼的 內容以及如何在我們編碼的字符串中將 上的圖像呈現在WebView上。

首先,使用的工具是commons 來自Apache的編解碼器包。 文檔可以在這裏找到。 來源可在這裏。你只需要將 包含到你的項目中的包的源碼爲 ,它是兼容的所有Android 。

的公共編解碼器包還具有用於Base64的解碼 方便的方法,

String imageString = ""; 
try { 
    FileInputStream fin = openFileInput("camera.jpg"); 
    int jpeg_size = fin.available(); 
    byte[] imagedata = new byte[jpeg_size]; 
    fin.read(imagedata); 
    byte[] encodedData = Base64.encodeBase64(imagedata); 
    imageString = new String(encodedData); 
    final String mimetype = "text/html"; 
    final String encoding = "UTF-8"; 
    // replace below [ with html "<" and ] similarly ] with ">" 
    String html = "[html][body][center][img height=\"200\" width=\"200\" 
     src=\"data:image/jpeg;base64,"+imageString+"\"/][/center][/body][/html]"; 
    mWebView.loadData(html, mimetype, encoding); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

還有在包裝, 其可用於例如方便的Base64 解碼功能,對 在MIME 消息中解碼Base64編碼的內容,這些消息在 上一篇文章中有介紹。

+0

鏈接是死的任何結束了。 – stealthcopter 2010-04-28 15:37:16

1

確保結果編碼爲URL(簽名= URLEncoder.encode(簽字);),或者你以某種不幸