gpt4 book ai didi

c# - 有没有更有效的方法来处理 C# ASP.NET (esp MVC 5) 上的亚马逊产品广告 API?

转载 作者:行者123 更新时间:2023-11-30 21:53:53 31 4
gpt4 key购买 nike

我终于让亚马逊产品广告 API 在我的 MVC 5 网站上运行。我正在使用从 Amazon 站点下载的其中一个提供的“SignedRequestHelper”类。我实际上已经获得了对 Amazon API 的引用,但我目前似乎根本没有使用它。

我目前使用的是( Controller ):

    SignedRequestHelper helper = new SignedRequestHelper("myAWSaccessKeyID",
"mysecretKey", "webservices.amazon.co.uk");


Dictionary<String, String> items = new Dictionary<String, String>();

items.Add("Service", "AWSECommerceService");
items.Add("Operation", "ItemSearch");
items.Add("AWSAccessKeyId", "myAWSaccessKeyID");
items.Add("AssociateTag", "myTag");
items.Add("SearchIndex", SearchIndex);//This is a string value (selectbox)
items.Add("ResponseGroup", "Images,ItemAttributes,OfferFull,Offers,OfferSummary,Reviews");
items.Add("Keywords", keyword);//This is a string value

string requestUrl = helper.Sign(items);

ViewBag.Stuff = requestUrl;//Just so I could see the whole URL!

WebRequest request = HttpWebRequest.Create(requestUrl);
WebResponse response = request.GetResponse();
XmlDocument doc = new XmlDocument();
doc.Load(response.GetResponseStream());

XmlNodeList titleNodes = doc.GetElementsByTagName("Item");

ViewBag.Titles = titleNodes;

你可能注意到我从草稿本中部分复制了JAVA代码的样式。

从那时起,在 View 中我只处理每个部分。像这样处理开关有点困惑和可怕:

foreach (System.Xml.XmlNode item in ViewBag.Titles)
{
<h3>Item: @count</h3>
foreach (System.Xml.XmlNode child in item.ChildNodes)
{
switch (child.Name)
{
case "ASIN":
<p>ASIN: @child.InnerText</p>
break;
case "MediumImage":
<img src="@child.ChildNodes[0].InnerText" />
break;
case "ItemAttributes":
foreach (System.Xml.XmlNode child1 in child.ChildNodes)
{
if(child1.Name == "Title")
{
<p>@child1.InnerText</p>
}
}
break;
}

}
count++;
}

它有效,我可以使用 XML 文档等。我只需要知道是否有办法更改它,以便它实际上使用作为引用给出的 API 部分。我宁愿使用适当的工具也不愿像这样使用原始 XML。我在连接 Amazon 文档时遇到了很大的困难,以至于我基本上只是尝试在 Amazon 的便签本上连接 JAVA 样式代码。

最佳答案

您可以使用以下 nuget Nager.AmazonProductAdvertising包裹。

PM> Install-Package Nager.AmazonProductAdvertising

示例 Controller

public ActionResult ProductSearch(string search)
{
var authentication = new AmazonAuthentication();
authentication.AccessKey = "accesskey";
authentication.SecretKey = "secretkey";

var wrapper = new AmazonWrapper(authentication, AmazonEndpoint.DE);
var result = wrapper.Search(search);

return View(result);
}

示例 View

@model Nager.AmazonProductAdvertising.Model.AmazonItemResponse
@{
ViewBag.Title = "Search";
}

<table class="table">
<tr>
<th>ASIN</th>
<th>SalesRank</th>
</tr>
@foreach (var item in Model.Items.Item)
{
<tr>
<td>@item.ASIN</td>
<td>@item.SalesRank</td>
</tr>
}
</table>

关于c# - 有没有更有效的方法来处理 C# ASP.NET (esp MVC 5) 上的亚马逊产品广告 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611249/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com