Hallo,
ich wollte mich mal etwas in WebServices einarbeiten und hatte mir dafür die Amazon-Dienste ausgesucht.
Auf
docs.amazonwebservic...vice/2010-09-01/GSG/ unter "Making Requests" und dann auf "Implementing an Product Advertising API Request" auf der linken Seite habe ich dann BeispielCode für den Zugriff gefunden, den ich an sich nur 1:1 umgesetzt habe:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62:
| using System; using System.Collections.Generic; using System.Linq; using System.Text; using Amazon_Zugriff4.com.amazon.webservices;
namespace Amazon_Zugriff4 { class Program { static void Main(string[] args) { if (args.Length != 2) { args = new string[] { "DVD", "Matrix" }; }
string searchIndex = args[0]; string keywords = args[1];
AWSECommerceService ecs = new AWSECommerceService();
ItemSearch search = new ItemSearch(); search.AssociateTag = "xxxxxxxxxxxx"; search.AWSAccessKeyId = "YYYYYYYYYYYYYY"; ItemSearchRequest request = new ItemSearchRequest();
request.ResponseGroup = new string[] { "ItemAttributes" }; request.SearchIndex = searchIndex; request.Keywords = keywords;
search.Request = new ItemSearchRequest[] { request };
try { ItemSearchResponse response = ecs.ItemSearch(search); } catch (Exception e) { Console.WriteLine("Wieder ein Fehler: {0}", e.Message); }
}
} } |
Über "Add Web Reference" im VS 2008 habe ich dann auf Basis der Beschreibung:
webservices.amazon.c...CommerceService.wsdl
die entsprechenden Klassen generieren lassen.
Im Beispielcode musste ich allerdings
Zitat: |
search.Version = "2010-06-01"; |
auskommentieren, da ich sonst einen Compilerfehler erhalten hätte. Für "search.AWSAccessKeyId" habe ich meine Access Key ID und für "search.AWSAccessKeyId" meine Secret Access Key angegeben - wobei mir letzteres komisch vorkommt.
Jetzt erhalte ich aber immer beim ausführen den Fehler:
"Wieder ein Fehler: The request must contain the parameter Signature."
Über google habe ich herausgefunden, dass Amazon mittlerweile eine Signatur verlangt, die sich über die Parameter, den Public und Secret Key berechnet. Für mich stellt sich jetzt die Frage wie ich das hier einbauen kann - worunter müsste ich das denn angeben?
Zudem steht auf der Seite des Beispielcodes "Product Advertising API Getting Started Guide (API Version 2010-06-01)" - an sich müsste der Code doch dann laufen - schließlich ist er für die API von 2010 geschrieben worden, oder nicht?
Auf jeden Fall schonmal vielen Dank für eine Antwort,
viele Grüße
Andreas