2017-07-24 26 views
0

你好我試圖通過開機自檢產品的Magento下面的代碼無效的簽名 - 在產品發佈(使用POST方法)的Magento

JSONObject productJson = new JSONObject(); 
       JSONObject productParameJson = new JSONObject(); 
       productParameJson.put("sku", "Chair100"); 
       productParameJson.put("name", "Chair"); 
       productParameJson.put("price", "100"); 
       productParameJson.put("status", "1"); 
       productParameJson.put("visibility", "1"); 
       productJson.put("product", productParameJson); 
       OAuthRequest oauthRequestPost = new OAuthRequest(Verb.POST, "http://magentohost/api/rest" + "/products"); 
       oauthRequestPost.addHeader("Content_Type", "application/json"); 
       oauthRequestPost.addPayload(productJson.toString()); 
       service.signRequest(accessToken2, oauthRequestPost); 
       Response apiResponsePost = oauthRequestPost.send(); 
       System.out.println(apiResponsePost.getCode()); 
       System.out.println(apiResponsePost.getBody()); 

但受以下錯誤

{"messages":{"error":[{"code":401,"message":"oauth_problem=signature_invalid"}]}} 

並在同如果我嘗試使用下面的代碼獲取產品列表,我會得到產品列表。

OAuthRequest oauthRequest = new OAuthRequest(Verb.GET, "http://Magentohost/api/rest" + "/products"); 
        service.signRequest(accessToken2, oauthRequest); 
        Response apiResponse = oauthRequest.send(); 
        System.out.println(apiResponse.getCode()); 
        System.out.println(apiResponse.getBody()); 

我在POST方法做錯了什麼,請在上面幫我一下。

回答

0

我是能夠通過使用以下的依賴上述解決:

<dependency> 
     <groupId>com.github.scribejava</groupId> 
     <artifactId>scribejava-apis</artifactId> 
     <version>4.2.0</version> 
    </dependency> 

和改性代碼如前所述here