java - 带有正文内容的 Google API Java GET 请求

标签 java google-api google-tasks-api

我的目标是请求 GoogleTaskAPI 获取具有指定结果数的 TASKLIST。 如果我没有传递 requestBody,它工作得很好。但我需要将请求参数传递给要返回的特定数量的结果。当我这样做时,它会创建新的任务列表,而不是列表。那么如何做到这一点呢?

我的代码:

    GoogleAccessProtectedResource access = new GoogleAccessProtectedResource(accessToken, httpTransport, jsonFactory, clientId, clientSecret, refreshToken);
    HttpRequestFactory rf = httpTransport.createRequestFactory(access);

    String endPointUrl = "https://www.googleapis.com/tasks/v1/users/@me/lists";
    String requestBody = "{\"maxResults\":3}";

    GenericUrl endPoint = new GenericUrl(endPointUrl);
    ByteArrayContent content = new ByteArrayContent("application/json", requestBody.getBytes());

    //Try 0: Works, But Retrieving all of my Tasklist, I need only 3
    //HttpRequest request = rf.buildGetRequest(endPoint);
    //-------

    //Try 1: Fails to retrieve
    //HttpRequest request = rf.buildGetRequest(endPoint);
    //request.setContent(content);
    //request.getContent().writeTo(System.out);
    //-------

    //Try 2: Fails to retrieve
    HttpRequest request = rf.buildRequest(HttpMethod.GET, endPoint, content);
    request.getContent().writeTo(System.out);
    //-------

    HttpResponse response = request.execute();
    String str = response.parseAsString();
    utils.log(str);  

最佳答案

maxResults 是查询参数,而不是请求参数,因此您可以将其放在 url 中:

String endPointUrl = "https://www.googleapis.com/tasks/v1/users/@me/lists?maxResults=3";

您还应该考虑使用 Java 客户端的任务接口(interface)来发出请求;它可能会更容易一些,因为它会为您处理 url 的详细信息:

http://code.google.com/p/google-api-java-client/wiki/APIs#Tasks_API

关于java - 带有正文内容的 Google API Java GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12471066/

相关文章:

c# - 了解此 c# 代码的含义

google-tasks-api - Google Task API将任务移到其他列表

java - 如何使用具有 Java 8 特性的 Realm 数据库

javascript - 使用 Google Drive API v3 将 .docx 或 .doc 文件转换为 google docs 文件

javascript - 未捕获的安全错误 : Blocked a frame with origin "https://www.google.com" from accessing a frame with origin "http://my.site.com".

javascript - 将纬度和经度传递给我的 map 脚本

go - `go get cloud.google.com/go/cloudtasks/apiv2`的一些问题;未定义: grpc. RoundRobin

java - 从 eclipse 市场安装了 e(fx)clipse 但运行 JavaFX 应用程序仍然出现错误

java - 获取没有错误消息的 IOException Android

java命令行编译