Я пытаюсь обновить существующий документ с помощью Google Docs API. Я использую PHP + Curl. gdata.class.php является базовым классом. Обновление заканчивается частично. Старый контент очищен. Но новый контент не создается. Согласно документации, отправляю PUT-запрос (первоначальный запрос) на адрес
gdata.class.php
http://docs.google.com/feeds/upload/create-session/default/private/full/document%123456
Есть Etag документа и пустое тело запроса. Я получаю код состояния 200 Ok и уникальный URI загрузки, например:
200 Ok
http://docs.google.com/feeds/upload/create-session/default/private/full/document%123456?upload_id=EnB2Uob7DWcFVJTX3oF8sdVv9koZTHacngmM_
Что мне делать ???
Я отправляю содержимое файла и заголовки на уникальный URI загрузки:
[0] => Content-Length: 6 [1] => Content-Range: bytes 0-5/6 [2] => Content-Type: text / plain
Ответ получен:
HTTP / 1.1 308 Резюме не завершено
Заголовки не содержат заголовок «Range». Это странно. Результат : целевой файл не изменен.
[0] => Content-Length: 6 [1] => Content-Type: text/plain
HTTP/1.1 200 OK
В теле есть атом + xml. Результат : целевой файл стал пустым.
P.s. Функция curl_getinfo возвращает "5". Это не зависит от размера файла.
curl_getinfo
"5"
Хорошо, если он попросит вас использовать метод PUT, скажите CURL, чтобы он использовался ..
curl_setopt($ch, CURLOPT_PUT, 1);