java - Woocommerce API 获取所有产品

标签 java api woocommerce get

我尝试使用一些参数从 API 获取产品。我用过WooCommerce API Java Wrapper 。带有 OAuth 1.0 的 REST API。简单的 getAll 方法返回一页列表(10 个产品)。为了获得所有内容,我必须设置一页中必须有多少产品并使用偏移量。要获取第三页必须发送此参数:“per_page=10&offset=20”。我在 get&post 程序中使用查询进行测试 - 所有工作。在Java中,当我添加参数时 - 我收到错误(401) - “无效签名 - 提供的签名不匹配”。 我更改了 WooCommerceAPI 类:

private static final String API_URL_FORMAT = "%s/wp-json/wc/v2/%s";
    private static final String API_URL_ONE_ENTITY_FORMAT = "%s/wp-json/wc/v2/%s/%d";
    private HttpClient client;
    private OAuthConfig config;
 public List getAll(String endpointBase) {
        String url = String.format(API_URL_FORMAT, config.getUrl(), endpointBase) + "?per_page=10&offset=20";
        String signature = OAuthSignature.getAsQueryString(config, url, HttpMethod.GET);
        String securedUrl = String.format("%s&%s", url, signature);
        System.out.println("url="+url);
        System.out.println("securedUrl="+securedUrl);
        return client.getAll(securedUrl);
    }

但是我也遇到了同样的错误。

最佳答案

我刚刚发布了 wc-api-java 库的新版本(版本 1.2),现在您可以使用带有 params 参数的 getAll 方法,您可以在其中放置其他请求参数。例如:

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

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

关于java - Woocommerce API 获取所有产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48866680/

相关文章:

api - 使用Zuul路由到Docker中的其他容器不起作用

wordpress - woocommerce 信用卡付款有条件折扣

php - 在 Woocommerce 3 中将产品自定义字段显示为订单项目

java - 通过网络附加文本文件 Android API SDK 分钟 19

java - 为什么新的源集资源不在gradle的buildDir中

java - 使用 self 作为参数创建实例

java - Spring - 获取所有可解析的消息键

api - Rails 5 仅限 api 的应用程序,带有主页

javascript - 如何使用 GET 发送正文请求

php - 如何在 wordpress/woocommerce 中获取所有订单详细信息?