经过几个小时的修补和多次阅读整个互联网,我无法弄清楚如何签署使用Product Advertising API的请求.
到目前为止,我设法从提供的WSDL文件生成客户端.我使用了亚马逊的教程.你可以在这里找到它:
到目前为止没有问题.为了测试客户端,我写了一小段代码.该代码旨在简单地获取有关产品的一些信息.该产品由其ASIN指定.
代码:
package client;
import com.ECS.client.jax.AWSECommerceService;
import com.ECS.client.jax.AWSECommerceServicePortType;
import com.ECS.client.jax.ItemLookup;
import com.ECS.client.jax.ItemLookupResponse;
import com.ECS.client.jax.ItemLookupRequest;
public class Client {
public static void main(String[] args) {
System.out.println("API Test startet");
AWSECommerceService service = new AWSECommerceService();
AWSECommerceServicePortType port = service.getAWSECommerceServicePort();
ItemLookupRequest itemLookup = new ItemLookupRequest();
itemLookup.setIdType("ASIN");
itemLookup.getItemId().add("B000RE216U");
ItemLookup lookup = new ItemLookup();
lookup.setAWSAccessKeyId("<mykeyishere>");
lookup.getRequest().add(itemLookup);
ItemLookupResponse response = port.itemLookup(lookup);
String r = response.toString();
System.out.println("response: " + r);
System.out.println("API Test stopped");
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有签署请求的部分.我已经通过了很多使用过的类,并没有找到签署请求的方法.
那么,如何签署请求?
我实际上在文档中找到了一些东西:请求身份验证
但他们不使用自己的API.所提出的解决方案或多或少仅供手动使用.所以我查看了客户端类,以便了解我是否可以获取请求URL并将自己请求签名所需的所有部分放入其中.但是没有这样的方法.
我希望有人可以指出我做错了什么.
这就是我为解决问题所做的.所有的功劳归功于乔恩 …