2

我正在使用signpost for OAuth从 Magento 服务器访问数据。我已经阅读了相同的各种教程,并且我达到了我们打开浏览器以便用户可以输入他的凭据的地步。但是,根据我的要求,我必须自动化这部分。

因此,用户不应获取浏览器页面。我在服务器端( Magento )完成了这个设置,在那里我点击了 URL 并返回到回调页面。我想通过我在 Android 中的程序来做同样的事情。

我已经尝试了以下,

consumer = new CommonsHttpOAuthConsumer(KEY, Secret);
provider = new CommonsHttpOAuthProvider(OAUTH_INIT_URL,ACCESS_TOKEN_URL, AUTHORIZE_URL);                
try {
    provider.retrieveRequestToken(consumer, OAuth.OUT_OF_BAND);
    Log.d("Tokens" , consumer.getToken() + " -- " + consumer.getTokenSecret());
    }

我得到了请求令牌。但我不知道如何绕过下一步。我尝试直接访问 AccessToken(我很愚蠢) provider.retrieveAccessToken(consumer, "myCallback://callback");但没有运气,它最终出现在

oauth.signpost.exception.OAuthNotAuthorizedException: Authorization failed (server   replied with a 401). This can happen if the consumer key was not correct or the signatures did not match.

我真的很感激任何帮助,因为我从过去 3 天开始就一直坚持这一点。请告诉我是否需要提供更多数据。

4

1 回答 1

1
            OAuthConsumer consumer = new DefaultOAuthConsumer(myconsumerkey,
               mysecretkey);

        HttpURLConnection request;
        URL  baseUrl = new URL(myurl);
        request = (HttpURLConnection) baseUrl.openConnection();
        consumer.sign(request);

        InputStream in = new BufferedInputStream(
                    request.getInputStream());
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(in));
            StringBuilder out = new StringBuilder();
            String line = "";
            while ((line = reader.readLine()) != null) {
                out.append(line);
            }
         String serverResponse = out.toString();
于 2015-04-30T12:35:35.800 回答