- } else {
- JSONObject tokenJson = new JSONObject(postMethod.getResponseBodyAsString());
- parseResult(tokenJson);
- if (mResultTokenMap.get(OAuth2Context.OAUTH2_TOKEN_RECEIVED_ERROR) != null) {
- result = new RemoteOperationResult(ResultCode.OAUTH2_ERROR);
+ postMethod = new PostMethod(client.getWebdavUri().toString());
+ postMethod.setRequestBody(nameValuePairs);
+ int status = client.executeMethod(postMethod);
+
+ String response = postMethod.getResponseBodyAsString();
+ if (response != null && response.length() > 0) {
+ JSONObject tokenJson = new JSONObject(response);
+ parseAccessTokenResult(tokenJson);
+ if (mResultTokenMap.get(OAuth2Constants.KEY_ERROR) != null || mResultTokenMap.get(OAuth2Constants.KEY_ACCESS_TOKEN) == null) {
+ result = new RemoteOperationResult(ResultCode.OAUTH2_ERROR);
+
+ } else {
+ result = new RemoteOperationResult(true, status, postMethod.getResponseHeaders());
+ ArrayList<Object> data = new ArrayList<Object>();
+ data.add(mResultTokenMap);
+ result.setData(data);
+ }