Shopify无法授权使用WS进行的api请求

时间:2013-10-16 02:04:35

标签: playframework-2.0 shopify

我已经为Shopify网站设置了API密钥,并且能够使用以下代码执行GET请求请求

DefaultHttpClient httpClient = new DefaultHttpClient();

HttpGet get = new HttpGet("https://75da...:2a1dd3...@mytest.myshopify.com/admin/products.json");

response = httpClient.execute(get);

以上是在junit测试中使用Apache httpcomponents客户端4.2.3和httpcomponents核心4.2.4

使用相同的参数我尝试使用WS.url()但是我得到了401的响应 - 未经授权且身体中有消息

  

[API]无效的API密钥或访问令牌(无法识别的登录名或密码错误)

我在junit测试中使用的代码:

WSRequestHolder requestHolder = WS.url("https://75da...:2a1dd3...@mytest.myshopify.com/admin/products.json");

Promise<Response> promise = requestHolder.get();
Response response = promise.get();

我正在使用游戏2.1.3。

所以区别在于使用apache vs WS,我认为WS需要一些配置。任何人都可以提供一些见解吗?

由于

1 个答案:

答案 0 :(得分:0)

我发现了问题。我在使用WS时必须设置身份验证,例如

WSRequestHolder requestHolder = WS.url("https://mytest.myshopify.com/admin/products.json");     

requestHolder.setAuth("75da...", "2a1dd3...");
Promise<Response> promise = requestHolder.get();