0

我正在使用 Google Tasks API 和 Gogole Adwords API....要使用 Adwords API 我必须使用最新的 google-http-client jar...但是当我使用最新的 jar 时,Tasks API 似乎不起作用。这是我用于任务的代码

      HttpTransport httpTransport = new NetHttpTransport();
      JacksonFactory jsonFactory = new JacksonFactory();
      OAuthHmacSigner signer = new OAuthHmacSigner();
      signer.clientSharedSecret = consumerSecret;
      GoogleOAuthDomainWideDelegation initializer = new GoogleOAuthDomainWideDelegation();
      initializer.requestorId = "jags@solutiontest.com"; // email of the user, basically the xoauth_requestor_id URL param
      OAuthParameters parameters = new OAuthParameters();
      parameters.consumerKey=consumerKey;
      parameters.version = "1";
      parameters.signer = signer;
      initializer.parameters = parameters;
      Tasks service = Tasks.builder(httpTransport, jsonFactory).setHttpRequestInitializer(initializer).build();

      Tasklists.List listTask = service.tasklists().list();
      TaskLists taskLists = listTask.execute();

这是错误的完整堆栈跟踪

java.lang.NoSuchMethodError: com.google.api.client.http.HttpRequest.setAllowEmptyContent(Z)Lcom/google/api/client/http/HttpRequest; 在 com.google.api.client.googleapis.services.GoogleClient.buildHttpRequest(GoogleClient.java:171) 在 com.google.api.client.http.json.JsonHttpRequest.buildHttpRequest(JsonHttpRequest.java:179) 在 com.google .api.client.http.json.JsonHttpRequest.executeUnparsed(JsonHttpRequest.java:207) 在 com.google.api.services.tasks.Tasks$Tasklists$List.execute(Tasks.java:1731)

我应该怎么做才能同时使用 Google Tasks 和 Google Adwords API?任何指针将不胜感激..

TIA,
维杰拉吉

4

1 回答 1

0

此问题与 Tasks API 无关。幸运的是,这很容易解决。您尝试调用的方法setAllowEmptyContent1.11 中已弃用并在 1.12 中删除。您得到了一个NoSuchMethodError,因为您正在使用的客户端库 jar 中根本不存在该方法。

根据 1.11 版该方法的 javadoc,请改用以下内容:

setContent(new EmptyContent())

这是从 1.11 版开始的该方法的源代码和 javadoc。您可以在那里看到相关的弃用警告。

于 2013-06-28T22:07:51.750 回答