Может ли кто-нибудь предоставить пример C # с использованием itemsearch из Amazon Web Services?
Вопрос
Я пытаюсь использовать Amazon Web Services для запроса информации об исполнителе и названии и получения обложки альбома. Используя C #, я не могу найти примеров, которые бы даже приблизились к этому. Все примеры в Интернете устарели и не работают с более новой версией AWS.
Решение
Здесь вы идете за то, что оно стоит. Это код в элементе управления Asp.Net для отображения информации о книге. Вы, вероятно, можете приспособить его для своих целей достаточно легко. Или, по крайней мере, дать вам отправную точку. Если вы действительно хотите, я был бы рад объединить контроль и отправить его в вашу сторону.
if (!(string.IsNullOrEmpty(ISBN) && string.IsNullOrEmpty(ASIN)))
{
AWSECommerceService service = new AWSECommerceService();
ItemLookup lookup = new ItemLookup();
ItemLookupRequest request = new ItemLookupRequest();
lookup.AssociateTag = ConfigurationManager.AppSettings["AssociatesTag"];
lookup.AWSAccessKeyId = ConfigurationManager.AppSettings["AWSAccessKey"];
if (string.IsNullOrEmpty(ASIN))
{
request.IdType = ItemLookupRequestIdType.ISBN;
request.ItemId = new string[] { ISBN.Replace("-", "") };
}
else
{
request.IdType = ItemLookupRequestIdType.ASIN;
request.ItemId = new string[] { ASIN };
}
request.ResponseGroup = ConfigurationManager.AppSettings["AWSResponseGroups"].Split(new char[] { ' ', ',', ';' }, StringSplitOptions.RemoveEmptyEntries);
lookup.Request = new ItemLookupRequest[] { request };
ItemLookupResponse response = service.ItemLookup(lookup);
if (response.Items.Length > 0 && response.Items[0].Item.Length > 0)
{
Item item = response.Items[0].Item[0];
if (item.MediumImage == null)
{
bookImageHyperlink.Visible = false;
}
else
{
bookImageHyperlink.ImageUrl = item.MediumImage.URL;
}
bookImageHyperlink.NavigateUrl = item.DetailPageURL;
bookTitleHyperlink.Text = item.ItemAttributes.Title;
bookTitleHyperlink.NavigateUrl = item.DetailPageURL;
if (item.OfferSummary.LowestNewPrice == null)
{
if (item.OfferSummary.LowestUsedPrice == null)
{
priceHyperlink.Visible = false;
}
else
{
priceHyperlink.Text = string.Format("Buy used {0}", item.OfferSummary.LowestUsedPrice.FormattedPrice);
priceHyperlink.NavigateUrl = item.DetailPageURL;
}
}
else
{
priceHyperlink.Text = string.Format("Buy new {0}", item.OfferSummary.LowestNewPrice.FormattedPrice);
priceHyperlink.NavigateUrl = item.DetailPageURL;
}
if (item.ItemAttributes.Author != null)
{
authorLabel.Text = string.Format("By {0}", string.Join(", ", item.ItemAttributes.Author));
}
else
{
authorLabel.Text = string.Format("By {0}", string.Join(", ", item.ItemAttributes.Creator.Select(c => c.Value).ToArray()));
}
ItemLink link = item.ItemLinks.Where(i => i.Description.Contains("Wishlist")).FirstOrDefault();
if (link == null)
{
wishListHyperlink.Visible = false;
}
else
{
wishListHyperlink.NavigateUrl = link.URL;
}
}
}
Другие советы
На CodePlex есть проект с открытым исходным кодом, на который вы можете взглянуть ... Это библиотека .NET для веб-сервисов Amazon. S3, SQS, FPS, EC2 и DevPay
Это может быть так просто (как показано в codeplex):
S3Client s3 = new S3Client("myAWSKey", "MyAWSPassword");
bool success = s3.Connect();
S3Client s3 = new S3Client("key", "secret"):
var buckets = from b in s3.Buckets
where b.Name == "demo"
select b;
foreach(Bucket b in buckets)
{
Console.WriteLine(b.About());
}