using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using System.Net;
namespace SimpleLookup
{
public partial class FormMain : Form
{
private const string MY_AWS_ACCESS_KEY_ID = "(ここに アクセスキーID を入力します。)";
private const string MY_AWS_SECRET_KEY = "(ここに シークレットアクセスキー を入力します。)";
private const string DESTINATION = "ecs.amazonaws.jp";
private const string ASSOCIATE_TAG = "YOUR_ASSOCIATE_TAG";//今回は未指定でOKです。
public FormMain()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
SignedRequestHelper helper = new SignedRequestHelper(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, DESTINATION, ASSOCIATE_TAG);
string asin = textBox2.Text;
IDictionary<string, string> request = new Dictionary<string, String>();
request["Service"] = "AWSECommerceService";
request["Operation"] = "ItemLookup";
request["ItemId"] = asin;
request["ResponseGroup"] = "Images";
string requestUrl = helper.Sign(request);
GetResponseForImage(requestUrl);
}
public void GetResponseForImage(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(response.GetResponseStream());
XmlNamespaceManager xmlNsManager = new XmlNamespaceManager(xmlDocument.NameTable);
xmlNsManager.AddNamespace("ns", "http://webservices.amazon.com/AWSECommerceService/2011-08-01");
XmlNodeList nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:LargeImage/ns:URL", xmlNsManager);
if (0 < nodeList.Count) {
textBox1.Text += "LargeImage: " + nodeList[0].InnerText +"\r\n";
}
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:MediumImage/ns:URL", xmlNsManager);
if (0 < nodeList.Count) {
textBox1.Text += "MediumImage: " + nodeList[0].InnerText + "\r\n";
}
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:SmallImage/ns:URL", xmlNsManager);
if (0 < nodeList.Count) {
textBox1.Text += "SmallImage: " + nodeList[0].InnerText + "\r\n";
}
}
}
}
SignedRequestHelper helper = new SignedRequestHelper(MY_AWS_ACCESS_KEY_ID, MY_AWS_SECRET_KEY, DESTINATION, ASSOCIATE_TAG);
string asin = textBox2.Text;
IDictionary<string, string> request = new Dictionary<string, String>();
request["Service"] = "AWSECommerceService";
request["Operation"] = "ItemLookup";
request["ItemId"] = asin;
request["ResponseGroup"] = "Images";
string requestUrl = helper.Sign(request);
GetResponse(requestUrl);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(response.GetResponseStream());
XmlNamespaceManager xmlNsManager = new XmlNamespaceManager(xmlDocument.NameTable);
xmlNsManager.AddNamespace("ns", "http://webservices.amazon.com/AWSECommerceService/2011-08-01");
XmlNodeList nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:LargeImage/ns:URL", xmlNsManager);
if (0 < nodeList.Count) {
textBox1.Text += "LargeImage: " + nodeList[0].InnerText +"\r\n";
}
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:MediumImage/ns:URL", xmlNsManager);
if (0 < nodeList.Count) {
textBox1.Text += "MediumImage: " + nodeList[0].InnerText + "\r\n";
}
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:SmallImage/ns:URL", xmlNsManager);
if (0 < nodeList.Count) {
textBox1.Text += "SmallImage: " + nodeList[0].InnerText + "\r\n";
}
}
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='primary']/ns:LargeImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='primary']/ns:MediumImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='primary']/ns:TinyImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='primary']/ns:ThumbnailImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='primary']/ns:SmallImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='primary']/ns:SwatchImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='variant']/ns:LargeImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='variant']/ns:MediumImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='variant']/ns:TinyImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='variant']/ns:ThumbnailImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='variant']/ns:SmallImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet[@Category='variant']/ns:SwatchImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:LargeImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:MediumImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:TinyImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:ThumbnailImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:SmallImage/ns:URL
/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:SwatchImage/ns:URL
public void GetResponseForImageSet(string url)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(response.GetResponseStream());
XmlNamespaceManager xmlNsManager = new XmlNamespaceManager(xmlDocument.NameTable);
xmlNsManager.AddNamespace("ns", "http://webservices.amazon.com/AWSECommerceService/2011-08-01");
XmlNodeList nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:LargeImage/ns:URL", xmlNsManager);
for (int i=0; i < nodeList.Count;i++) {
textBox1.Text += "LargeImage: " + nodeList[i].InnerText + "\r\n";
}
textBox1.Text += "----\r\n";
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:MediumImage/ns:URL", xmlNsManager);
for (int i = 0; i < nodeList.Count; i++) {
textBox1.Text += "MediumImage: " + nodeList[i].InnerText + "\r\n";
}
textBox1.Text += "----\r\n";
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:TinyImage/ns:URL", xmlNsManager);
for (int i = 0; i < nodeList.Count; i++) {
textBox1.Text += "TinyImage: " + nodeList[i].InnerText + "\r\n";
}
textBox1.Text += "----\r\n";
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:ThumbnailImage/ns:URL", xmlNsManager);
for (int i = 0; i < nodeList.Count; i++) {
textBox1.Text += "ThumbnailImage: " + nodeList[i].InnerText + "\r\n";
}
textBox1.Text += "----\r\n";
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:SmallImage/ns:URL", xmlNsManager);
for (int i = 0; i < nodeList.Count; i++) {
textBox1.Text += "SmallImage: " + nodeList[i].InnerText + "\r\n";
}
textBox1.Text += "----\r\n";
nodeList = xmlDocument.SelectNodes("/ns:ItemLookupResponse/ns:Items/ns:Item/ns:ImageSets/ns:ImageSet/ns:SwatchImage/ns:URL", xmlNsManager);
for (int i = 0; i < nodeList.Count; i++) {
textBox1.Text += "SwatchImage: " + nodeList[i].InnerText + "\r\n";
}
textBox1.Text += "----\r\n";
}
値 | 意味 | 画像サイズ (正方形) | 画像サイズ (一般的な書籍) | ロジック |
---|---|---|---|---|
Swatch | アイコンサイズの画像を取得します。 | 30×30 | 21×30 | 長辺が30ピクセルの画像を取得します |
Thumbnail | サムネイル画像を取得します。 | 75×75 | 52×75 | 長辺が75ピクセルの画像を取得します |
Small | 小サイズの画像を取得します。 | 75×75 | 52×75 | 長辺が75ピクセルの画像を取得します |
tiny | 小サイズの画像を取得します。 | 110×110 | 76×110 | 長辺が110ピクセルの画像を取得します |
Midium | 中サイズの画像を取得します。 | 160×160 | 110×160 | 長辺が160ピクセルの画像を取得します |
Large | 大サイズの画像を取得します。 | 500×500 | 345×500 | 長辺が500ピクセルの画像を取得します。ただしオリジナルの画像サイズが500ピクセルより小さい場合は原寸の画像を表示します。 |