Я использую API REST Google Диска с HTTPClient для создания папки. REST API - это документ here Обратите внимание, что запрос REST AP выполняется, но использует неправильные данные: tt создает новый файл под названием «untitled» и помещает туда мой json.Как создать папку с Google REST AP и HTTPClient?
Я пробовал разные методы построения запроса POST с помощью HTTPClient, которые успешно выполняются - но Google-диск как-то реагирует на создание файла и возвращает эти данные и игнорирует данные POST, которые я отправляю.
Это то, что сервер reponds с
..
"вид": "диск # файл", "идентификатор": "0B-fYJN-c4UDjUlh1TUZadF9vejA", это правильный ID «название «: "Без названия", ---- неправильного названия "MIMETYPE": "приложение/JSON, кодировка = UTF-8", - это неправильно MIMETYPE ..
Я попытался следующими способами вызывая 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);
В обоих случаях, Google API, реагирует с 200 и выше перечисленных возвращается FileResource.
Ваш ответ решил проблему. Я использовал неправильный URL-адрес: см. Эту страницу - https://developers.google.com/drive/v2/reference/files/insert. Я использовал URL-адрес, указанный здесь для POST https://www.googleapis.com/upload/drive/v2/files - это было неправильно. Вы использовали правильный URL-адрес и решили проблему. – user193116
Я рад, что смогу помочь. Но мне интересно, почему вы не используете клиентскую библиотеку Drive API, которую написала команда Google? –
см. Это: http://stackoverflow.com/questions/15986911/how-to-use-google-drive-client-library-for-java-with-my-homegrown-oauth-2-framew – user193116