JAVAでAmazon Product Advertising APIを使用するときのメモ(2016/11時点)
JAVAでAmazon Product Advertising APIを使用するときの手順・サンプルコードをメモ書きします。なお、当該APIは今後仕様変更の可能性もあるので、今回のメモは2016/11時点での内容とします。
1.アカウント作成
amazonのサイトでアカウント登録をします。Amazon Product Advertising API関連リンク集の記事が参考になります。
2.ヘルパークラス・サンプルコードの取得
Product Advertising API Signed Requests Sample Code - Java REST/QUERYよりコードをダウンロードします。
3.APIリクエスト先のURL確認
Anatomy of a REST RequestからAPIのリクエスト先のURLを確認します。
4.APIリクエストのコード例
以下に歌手名で音楽を検索する場合を例に、サンプルコードを記載します。なお、パラメータのリファレンスはProduct Advertising APIのページに詳しく記載されています。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class AmazonApiSample {
public static String searchMusic(String artist) {
// ダウンロードしたヘルパークラスでオブジェクトの作成
SignedRequestsHelper helper;
try {
// ENDPOINTに確認したURLのドメインを入力
helper = SignedRequestsHelper.getInstance(AmazonConstants.ENDPOINT, AmazonConstants.AWS_ACCESS_KEY_ID, AmazonConstants.AWS_SECRET_KEY);
} catch (Exception e) {
// exceptionの時はnullを返す
return null;
}
// Mapにリクエストのキー情報をつめる
Map<String, String> params = new HashMap<String, String>();
params.put("Service", "AWSECommerceService");
params.put("AWSAccessKeyId", AmazonConstants.AWS_ACCESS_KEY_ID);
params.put("Version", "2013-08-01");
params.put("AssociateTag", AmazonConstants.AWS_ASSOCIATETAG);
params.put("Operation", "ItemSearch");
params.put("SearchIndex", "Music");
params.put("Artist", artist);
params.put("Sort", "-releasedate");
params.put("ContentType", "text/xml");
HttpURLConnection httpURLConnection = null;
BufferedReader bufferedReader = null;
try{
// リクエスト処理
String requestUrl = helper.sign(params);
URL url = new URL(requestUrl);
httpURLConnection = (HttpURLConnection)url.openConnection();
String charSet = "UTF-8";
String method = "GET";
httpURLConnection.setRequestMethod( method );
InputStreamReader inputStreamReader = new InputStreamReader( httpURLConnection.getInputStream(), charSet );
bufferedReader = new BufferedReader( inputStreamReader );
// レスポンスのXMLを取得。
String oneLine = null;
String responseXml = "";
while( true ){
oneLine = bufferedReader.readLine();
// 行がNULLの場合
if(oneLine == null){
break;
// レスポンスの文字列へ行を追加
}else{
responseXml += oneLine;
}
}
return responseXml;
}catch( Exception e ){
// exceptionの時はnullを返す
return null;
}finally{
if( bufferedReader != null ){
try{
bufferedReader.close();
}catch( IOException e ){
// エラー時は無処理
}
}
if( httpURLConnection != null ){
httpURLConnection.disconnect();
}
}
}
}
Author And Source
この問題について(JAVAでAmazon Product Advertising APIを使用するときのメモ(2016/11時点)), 我々は、より多くの情報をここで見つけました https://qiita.com/someone7140/items/df3514b3d139c1b94ef9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .