Bonjour,

En fait j'ai un petit problème, je voudrais utiliser le service web d'amazon: ItemSearch avec un accessKey, une signature et un timestamp() en paramètre, pour une recherche avec indexSearch = Books; le problème, c'est que j'y arrive pas.

Je ne sais pas comment rajouter la signature et le timeStamp dans l'appel de itemSearch.

Est ce que quelqu'un pourrait m'aider avec un exemple de itemSearch prenant en compte la signature Hmac256. ? svp.

En fait mon code est comme ceci pour appeler itemSearch, par contre j'ai en execution un http Bad requestion 400,

MA démarche: j'ai récupéré le WSDL de AWSECommerceService.wsdl version 11-2009.

J'ai importé webService depuis WSDL pour généré les classes java.

Ensuite j'ai impémenté le code java pour appelé itemSearch comme suit:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import com.amazon.webservices.awsecommerceservice._2009_11_01.AWSECommerceService;
import com.amazon.webservices.awsecommerceservice._2009_11_01.AWSECommerceServicePortType;
import com.amazon.webservices.awsecommerceservice._2009_11_01.Item;
import com.amazon.webservices.awsecommerceservice._2009_11_01.ItemSearch;
import com.amazon.webservices.awsecommerceservice._2009_11_01.ItemSearchRequest;
import com.amazon.webservices.awsecommerceservice._2009_11_01.Items;
import com.amazon.webservices.awsecommerceservice._2009_11_01.OperationRequest;
import java.util.List;
import javax.xml.ws.Holder;
import java.math.BigInteger;
 
public class ItemSearchTester{
 
    public static void main(String[] args)
 
    {
 
        ItemSearchTester ist = new ItemSearchTester();
 
        ist.runSearch();
 
    }
 
    public void runSearch()
 
    {
 
        String awsAccessKeyID = "AKIAJ4NRPN32C5ZDEDNQ";
 
        // Set the service:
 
        AWSECommerceService service = new AWSECommerceService();
 
        //Set the service port:
 
        AWSECommerceServicePortType port = service.getAWSECommerceServicePort();
 
        //A new ItemSearch
 
        ItemSearch itemSearch =  new ItemSearch();
 
        itemSearch.setAWSAccessKeyId("AKIAJ4NRPN32C5ZDEDNQ");
 
        //A new ItemSearchRequest which is part of the ItemSearch
 
        ItemSearchRequest searchRequest = new ItemSearchRequest();
 
        java.util.List<ItemSearchRequest> list = itemSearch.getRequest();
 
        list.add(searchRequest);
 
        /*Set up the values of the ItemSearchRequest */
 
        searchRequest.setSearchIndex("Books");
 
        searchRequest.setAuthor("");
 
        searchRequest.setKeywords("Harry+Potter");
 
       // SearchRequest.s//.setVersion("2009-11-01");
 
        itemSearch.getRequest().add(searchRequest);
 
        java.util.List<String> responseGroup = searchRequest.getResponseGroup() ;
 
        responseGroup.add("Images");
 
        responseGroup.add("ItemAttributes");
 
        responseGroup.add("Large");
 
 
        Holder<OperationRequest> operationrequest = new Holder<OperationRequest>();
 
        Holder<java.util.List<Items>> items = new Holder<java.util.List<Items>> ();
      port.itemSearch("",awsAccessKeyID,awsAccessKeyID,"","","",searchRequest,itemSearch.getRequest(),operationrequest,items);
 
            //search.getRequest()
 
        java.util.List<Items> result = items.value;
 
        BigInteger totalPages = result.get(0).getTotalResults() ;
 
        System.out.println(totalPages);
 
        for (int i = 0; i < result.get(0).getItem().size(); ++i)
 
        {
 
            Item myItem = result.get(0).getItem().get(i) ;
 
            System.out.print(myItem.getASIN()) ;
 
            System.out.print( ", " ) ;
 
            System.out.println (myItem.getDetailPageURL());
 
            System.out.print( ", " ) ;
 
            System.out.println (myItem.getSmallImage() == null ? "" : myItem.getSmallImage().getURL());
 
        }
 
     }
 
}
Je compte sur votre aide, Merci.

Il me faut rajouter le paramètre signature et timeStamp et que ca marche.

Cordialement.


koko1986