我正在使用Google Drive REST API和HTTPClient創建文件夾。 REST API是文檔here請注意,REST AP請求執行 - 但使用了錯誤的數據:tt創建一個名爲「untitled」的新文件,並將我的json放在那裏。如何使用Google Drive REST AP和HTTPClient創建文件夾?
我嘗試過使用HTTPClient構建POST請求的不同方法,該方法可以成功執行 - 但不知何故,Google Drive響應創建文件並返回此數據並忽略我提交的POST數據。
這是服務器與
reponds ..
「種」: 「驅動器#文件」, 「ID」: 「0B-fYJN-c4UDjUlh1TUZadF9vejA」,這是一個有效ID 「稱號「: 「無題」,----錯題 「mime類型」: 「應用/ JSON的;字符集= UTF-8」, - 這是錯誤的mime類型 ..
我曾嘗試通過以下方式調用API:我不確定發送給我的數據發生了什麼。
1)使用形式名稱值對
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("https://www.googleapis.com/upload/drive/v2/files?key="+GoogleClientConstants.GOOGLE_api_key);
postRequest.addHeader("Authorization", "Bearer " + accessToken);
postRequest.addHeader("Content-Type", "application/json; charset=UTF-8");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("title", "vip"));
nvps.add(new BasicNameValuePair("mimeType", "application/vnd.google-apps.folder"));
postRequest.setEntity(new UrlEncodedFormEntity(nvps, org.apache.http.Consts.UTF_8));
HttpResponse response = httpClient.execute(postRequest);
2)使用StringEntity
JSONObject jo= new JSONObject();
jo.element("title", "pets").element("mimeType", "application/vnd.google-apps.folder");
ContentType contentType= ContentType.create("application/json", Charset.forName("UTF-8")) ;
StringEntity entity = new StringEntity(jo.toString(), contentType);
logger.info(" sending "+ jo.toString());
postRequest.setEntity(entity);
HttpResponse response = httpClient.execute(postRequest);
在兩種情況下,谷歌API 200響應和上述返回FileResource。
你的答案解決了這個問題。我使用了錯誤的網址:請參閱此頁面 - https://developers.google.com/drive/v2/reference/files/insert。我使用的是此處列出的URL,用於POST https://www.googleapis.com/upload/drive/v2/files - 這是錯誤的。您使用了正確的帖子網址並解決了問題。 – user193116
我很高興能幫上忙。但我很有趣,你爲什麼不使用Google團隊編寫的Drive API客戶端庫? –
請參閱此:http://stackoverflow.com/questions/15986911/how-to-use-google-drive-client-library-for-java-with-my-homegrown-oauth-2-framew – user193116