我正在使用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.HttpRequest.setAllowEmptyContent(Z)Lcom/google/api/client/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任务和Google Adwords API,我应该做些什么?任何指点都将不胜感激。。
TIA,
VijayRaj
此问题与任务API无关。幸运的是,这是一个简单的解决方案。您尝试调用的方法setAllowEmptyContent
在1.11版本中已被弃用,并在1.12版本中被删除。您得到的是NoSuchMethodError
,因为在您使用的客户端库jar中根本不存在方法。
根据1.11版本中关于该方法的javadoc,请使用以下内容:
setContent(new EmptyContent())
以下是1.11版本中该方法的源代码和javadoc。您可以在那里看到相关的弃用警告。