wc-api/v3 无法通过 wc-api-java 工作

wc-api/v3 not working via wc-api-java

  1. woocommerce 版本:3.3.3
    1. wordpress 版本 4.9.4
    2. wc-api-java版本1.2

我试图通过邮递员与 wc-api/v1 和 wc-api/v2 合作,但它们不起作用。只有 wc-api/v3 适用于我的网站。但是当我尝试使用 java 库 wc-api-java 1.2 (https://github.com/icoderman/wc-api-java):

OAuthConfig config = new OAuthConfig(
        "http://URL",
        "ck_XXX",
        "cs_XXX"
);
WooCommerce wooCommerce = new WooCommerceAPI(config, ApiVersionType.V2);

// Prepare object for request
Map<String, Object> productInfo = new HashMap<String, Object>();
productInfo.put("name", "Premium Quality");
productInfo.put("type", "simple");
productInfo.put("regular_price", "21.99");
productInfo.put("description", "This field contains description info.");

//Make request and retrieve result
Map product = wooCommerce.create(EndpointBaseType.PRODUCTS.getValue(), productInfo);

System.out.println(product.get("id"));

// Get all with request parameters
Map<String, String> params = new HashMap<String, String>();
params.put("per_page","100");
params.put("offset","0");
List products = wooCommerce.getAll(EndpointBaseType.PRODUCTS.getValue(), params);

System.out.println(products.size());

遇到异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpRequestBase
    at com.icoderman.woocommerce.WooCommerceAPI.<init>(WooCommerceAPI.java:21)
    at Main.main(Main.java:21)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpRequestBase
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

哪里没办法用wc-api/v3?

问题出在没有http客户端。通过使用 maven 添加 apache httpclient 依赖项解决:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.5</version>
</dependency>