[英]Google API Java GET request with body content
我的目標是請求帶有指定結果編號的TASKLIST的GoogleTaskAPI。 如果我沒有傳遞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客戶端的“任務”接口進行請求。 這可能會更容易一些,因為它可以為您處理url的詳細信息:
http://code.google.com/p/google-api-java-client/wiki/APIs#Tasks_API
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.