<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Promethe's Blog &#187; Web Service</title>
	<atom:link href="http://blog.promethe.net/tag/web-service/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.promethe.net</link>
	<description>Web, RIAs and chocolate spaghettis...</description>
	<lastBuildDate>Tue, 29 Jun 2010 09:24:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Amazon Web Services REST queries signature in ActionScript 3</title>
		<link>http://blog.promethe.net/2009/08/24/amazon-web-services-rest-queries-signature-in-actionscript-3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=amazon-web-services-rest-queries-signature-in-actionscript-3</link>
		<comments>http://blog.promethe.net/2009/08/24/amazon-web-services-rest-queries-signature-in-actionscript-3/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 10:00:12 +0000</pubDate>
		<dc:creator>Promethe</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://blog.promethe.net/?p=368</guid>
		<description><![CDATA[As I was working on a custom MP3 player, I wanted to use a web service to search for album arts in order to display them as the corresponding music is played. After a quic Google search I found Amazon Web Services (AWS). Amazon actually provides services to search items in their catalog and therefor [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">As I was working on a custom MP3 player, I wanted to use a web service to search for album arts in order to display them as the corresponding music is played. After a quic Google search I found Amazon Web Services (AWS). Amazon actually provides services to search items in their catalog and therefor you can look for a precise music album and get its cover. This very service is the Product Advertising and is accessible through the <a title="Documentation for Amazon's Product Advertising API" href="http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/" target="_blank">Product Advertising API</a>.</p>
<p style="text-align: justify;">But since the 15th of August 2009 AWS requires every request to be signed. It simply means that a "Signature" parameter must be added to each and every request. One might think that the API key should be enough, but this key is inserted in every query URL and can be read by pretty much anyone. The signature is created using the secret AWS password and crypted using the HMAC/SHA256 algorithms so that AWS can be sure the request actually comes from the genuine owner of the API key.</p>
<p style="text-align: justify;">The documentation features a guide to explain the whole <a href="http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/index.html?rest-signature.html" target="_blank">signing process step-by-step</a> but as you might have guesses, there is a huge difference between reading it on the documentation and actually implementing it successfully.</p>
<p style="text-align: justify;">Full code right after the jump...</p>
<p style="text-align: justify;"><span id="more-368"></span></p>
<p style="text-align: justify;">The following class wrap the URLRequest class to provide signed requests to AWS (requires <a href="http://code.google.com/p/as3corelib/" target="_blank">AS3CoreLib</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package com.<span style="color: #006600;">amazon</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">adobe</span>.<span style="color: #006600;">crypto</span>.<span style="color: #006600;">HMAC</span>;
	<span style="color: #0066CC;">import</span> com.<span style="color: #006600;">adobe</span>.<span style="color: #006600;">crypto</span>.<span style="color: #006600;">SHA256</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">net</span>.<span style="color: #006600;">URLRequest</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">utils</span>.<span style="color: #006600;">ByteArray</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">formatters</span>.<span style="color: #006600;">DateFormatter</span>;
	<span style="color: #0066CC;">import</span> mx.<span style="color: #006600;">utils</span>.<span style="color: #006600;">Base64Encoder</span>;
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AmazonRequest
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> const AWS_NAMESPACE	: Namespace	= <span style="color: #000000; font-weight: bold;">new</span> Namespace<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;http://webservices.amazon.com/AWSECommerceService/2009-01-06&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const AWS_KEY		: <span style="color: #0066CC;">String</span>	= <span style="color: #ff0000;">&quot;your_aws_api_key_here&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const AWS_SECRET 	: <span style="color: #0066CC;">String</span>	= <span style="color: #ff0000;">&quot;your_aws_secret_key_here&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const AWS_METHOD		: <span style="color: #0066CC;">String</span>	= <span style="color: #ff0000;">&quot;GET&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const AWS_HOST		: <span style="color: #0066CC;">String</span>	= <span style="color: #ff0000;">&quot;ecs.amazonaws.com&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const AWS_PATH		: <span style="color: #0066CC;">String</span>	= <span style="color: #ff0000;">&quot;/onca/xml&quot;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #0066CC;">static</span> const AWS_URL		: <span style="color: #0066CC;">String</span>	= <span style="color: #ff0000;">&quot;http://&quot;</span> + AWS_HOST + AWS_PATH;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _URLRequest		: URLRequest	= <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _DateFormatter	: DateFormatter	= <span style="color: #000000; font-weight: bold;">new</span> DateFormatter<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> <span style="color: #0066CC;">url</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">String</span> <span style="color: #66cc66;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span>_URLRequest.<span style="color: #0066CC;">url</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> <span style="color: #0066CC;">data</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">Object</span> <span style="color: #66cc66;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span>_URLRequest.<span style="color: #0066CC;">data</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> requestHeaders<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">Array</span> <span style="color: #66cc66;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span>_URLRequest.<span style="color: #006600;">requestHeaders</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> urlRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : URLRequest <span style="color: #66cc66;">&#123;</span><span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span>signRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> <span style="color: #0066CC;">url</span><span style="color: #66cc66;">&#40;</span>value : <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>_URLRequest.<span style="color: #0066CC;">url</span> = value;<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> <span style="color: #0066CC;">data</span><span style="color: #66cc66;">&#40;</span>value : <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>_URLRequest.<span style="color: #0066CC;">data</span> = value;<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> requestHeader<span style="color: #66cc66;">&#40;</span>value : <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span>_URLRequest.<span style="color: #006600;">requestHeaders</span> = value;<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> AmazonRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			_URLRequest.<span style="color: #0066CC;">url</span> = AWS_URL;
			_DateFormatter.<span style="color: #006600;">formatString</span> = <span style="color: #ff0000;">&quot;YYYY-MM-DDTJJ:NN:SS.000Z&quot;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> parametersSort<span style="color: #66cc66;">&#40;</span>s1 : <span style="color: #0066CC;">Object</span>, s2 : <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">Number</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> c1 : <span style="color: #0066CC;">Number</span> = <span style="color: #66cc66;">&#40;</span>s1.<span style="color: #0066CC;">name</span> as <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">charCodeAt</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> c2 : <span style="color: #0066CC;">Number</span> = <span style="color: #66cc66;">&#40;</span>s2.<span style="color: #0066CC;">name</span> as <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #0066CC;">charCodeAt</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span>c1 <span style="color: #66cc66;">&gt;</span> c2 ? <span style="color: #cc66cc;">1.0</span> : -<span style="color: #cc66cc;">1.0</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> signRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> : URLRequest
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> vars : <span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> signature : <span style="color: #0066CC;">String</span> = AWS_METHOD + <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> + AWS_HOST + <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span> + AWS_PATH + <span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> timestamp : <span style="color: #0066CC;">String</span> = <span style="color: #000000; font-weight: bold;">null</span>;
			<span style="color: #000000; font-weight: bold;">var</span> encoder	 : Base64Encoder = <span style="color: #000000; font-weight: bold;">new</span> Base64Encoder<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> secretBytes : ByteArray = <span style="color: #000000; font-weight: bold;">new</span> ByteArray<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> requestBytes : ByteArray = <span style="color: #000000; font-weight: bold;">new</span> ByteArray<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> now : <span style="color: #0066CC;">Date</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Date</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #000000; font-weight: bold;">var</span> hash : <span style="color: #0066CC;">String</span> = <span style="color: #000000; font-weight: bold;">null</span>;
			<span style="color: #000000; font-weight: bold;">var</span> hashBytes : ByteArray = <span style="color: #000000; font-weight: bold;">new</span> ByteArray<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// build the timestamp</span>
			now.<span style="color: #0066CC;">setTime</span><span style="color: #66cc66;">&#40;</span>now.<span style="color: #0066CC;">getTime</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #66cc66;">&#40;</span>now.<span style="color: #0066CC;">getTimezoneOffset</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">60</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			timestamp = _DateFormatter.<span style="color: #006600;">format</span><span style="color: #66cc66;">&#40;</span>now<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			vars.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span><span style="color: #0066CC;">name</span>: <span style="color: #ff0000;">&quot;Timestamp&quot;</span>, value: encodeURIComponent<span style="color: #66cc66;">&#40;</span>decodeURIComponent<span style="color: #66cc66;">&#40;</span>timestamp<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// add the API Key</span>
			_URLRequest.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">AWSAccessKeyId</span> = AWS_KEY;
&nbsp;
			<span style="color: #808080; font-style: italic;">// extract and sort parameters</span>
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> o : <span style="color: #0066CC;">Object</span> <span style="color: #b1b100;">in</span> _URLRequest.<span style="color: #0066CC;">data</span><span style="color: #66cc66;">&#41;</span>
				vars.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span><span style="color: #0066CC;">name</span>: o, value: _URLRequest.<span style="color: #0066CC;">data</span><span style="color: #66cc66;">&#91;</span>o<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
			vars = vars.<span style="color: #0066CC;">sortOn</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;name&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// build the string to sign</span>
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i : <span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&lt;</span> vars.<span style="color: #0066CC;">length</span>; i++<span style="color: #66cc66;">&#41;</span>
				signature += <span style="color: #66cc66;">&#40;</span>i ? <span style="color: #ff0000;">&quot;&amp;&quot;</span> : <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span> + encodeURIComponent<span style="color: #66cc66;">&#40;</span>decodeURIComponent<span style="color: #66cc66;">&#40;</span>vars<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">name</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
							 + <span style="color: #ff0000;">&quot;=&quot;</span> + encodeURIComponent<span style="color: #66cc66;">&#40;</span>decodeURIComponent<span style="color: #66cc66;">&#40;</span>vars<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">value</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// build the signature</span>
			hash = HMAC.<span style="color: #006600;">hash</span><span style="color: #66cc66;">&#40;</span>AWS_SECRET, signature, SHA256<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #b1b100;">for</span> <span style="color: #66cc66;">&#40;</span>i = <span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&lt;</span> hash.<span style="color: #0066CC;">length</span>; i += <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>
				hashBytes.<span style="color: #006600;">writeByte</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">parseInt</span><span style="color: #66cc66;">&#40;</span>hash.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span> + hash.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>i + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #cc66cc;">16</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// encode the signature to Base64</span>
			encoder.<span style="color: #006600;">encodeBytes</span><span style="color: #66cc66;">&#40;</span>hashBytes<span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">// the the Signature and Timestamp parameters</span>
			_URLRequest.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">Signature</span> = encodeURI<span style="color: #66cc66;">&#40;</span>encoder.<span style="color: #0066CC;">toString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			_URLRequest.<span style="color: #0066CC;">data</span>.<span style="color: #006600;">Timestamp</span> = timestamp;
&nbsp;
			<span style="color: #b1b100;">return</span> <span style="color: #66cc66;">&#40;</span>_URLRequest<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p style="text-align: justify;">... and the following example function demonstrates how to use this class to actually query AWS to get album arts from a given album name:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getCovers<span style="color: #66cc66;">&#40;</span>myAlbum : <span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> request	: AmazonRequest = <span style="color: #000000; font-weight: bold;">new</span> AmazonRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> loader : URLLoader = <span style="color: #000000; font-weight: bold;">new</span> URLLoader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #000000; font-weight: bold;">var</span> vars : URLVariables = <span style="color: #000000; font-weight: bold;">new</span> URLVariables<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	vars.<span style="color: #006600;">Service</span> = <span style="color: #ff0000;">'AWSECommerceService'</span>;
	vars.<span style="color: #006600;">Operation</span> = <span style="color: #ff0000;">'ItemSearch'</span>;
	vars.<span style="color: #006600;">Keywords</span> = myAlbum;
	vars.<span style="color: #0066CC;">Version</span> = <span style="color: #ff0000;">&quot;2009-01-06&quot;</span>;
	vars.<span style="color: #006600;">SearchIndex</span> = <span style="color: #ff0000;">&quot;Music&quot;</span>;
	vars.<span style="color: #006600;">ResponseGroup</span> = <span style="color: #ff0000;">&quot;Images&quot;</span>;
&nbsp;
	request.<span style="color: #0066CC;">data</span> = vars;
&nbsp;
	loader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, requestCompleteHandler<span style="color: #66cc66;">&#41;</span>;
	loader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span>request.<span style="color: #006600;">urlRequest</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p style="text-align: justify;">And voila, I hope this will help!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.promethe.net/2009/08/24/amazon-web-services-rest-queries-signature-in-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>
