我尝试从 API 获取带有一些参数的产品。我用了WooCommerce API Java 包装器 https://github.com/icoderman/wc-api-java。带有 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());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)