| Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум на Исходниках.RU > Delphi: Сетевое программирование > PROPPATCH протокола WebDAV – как настроить параметры? |
| Автор: мыш 30.09.22, 20:24 |
| Друзья. Нигде не могу найти хоть какой-нибудь информации о методе PROPPATCH. Подскажите как правильно передать требуемые параметры? Список конкретных вопросов в конце. ЗАДАЧА: Получить в ответ от сервера https://webdav.yandex.ru/ публичную ссылку на файл, хранящийся на яндекс-диске. БИБЛИОТЕКА: Synaps УДАЛОСЬ СДЕЛАТЬ: Реализовать метод MKCOL. Успешно создаются папки. Код: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Var HTTP : THTTPSend; // class(TSynaClient) модуля unit httpsend; CatName: string; with HTTP do begin Headers.Clear; // очищаем заголовки, если ранее были заполнены другим запросом Headers.Add('Authorization: Basic ' + FToken); // FToken – зашифрованные пароль и логин, Headers.Add('Accept: */*'); // хрен знает что такое CatName := ‘Тестовый каталог’; URL := ‘https://webdav.yandex.ru/’+ CatName; if HTTPMethod('MKCOL', URL) then showmessage(‘Каталог создан’); End; ОПИСАНИЕ МЕТОДА ОТ ЯНДЕКС https://yandex.ru/dev/disk/doc/dg/reference/publish.html Публикация файлов и папок Файлы и папки, загруженные на Яндекс.Диск, можно опубликовать: сгенерировать ссылку, по которой они будут доступны не только владельцу Диска. Опубликованным файлам и папкам можно вернуть статус личных — сгенерированные публичные ссылки перестанут работать. Признак публичности устанавливается и редактируется с помощью метода PROPPATCH. Чтобы опубликовать файл или папку, свойству public_url в пространстве имен urn:yandex:disk:meta следует присвоить любое непустое значение. Пример публикации папки Публикуется папка /public_folder/, расположенная в корневом каталоге Диска пользователя. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> PROPPATCH /public_folder/ HTTP/1.1 User-Agent: my_application/0.0.1 Host: webdav.yandex.ru Authorization: OAuth 0c4182a7c2cf4521964a72ff57a34a07 Content-Length: 158 <propertyupdate xmlns="DAV:"> <set> <prop> <public_url xmlns="urn:yandex:disk:meta">true</public_url> </prop> </set> </propertyupdate> ЧТО Я ХОЧУ ВООБЩЕ: Написать клиента для яндекс-диска. В описаниях яндекса все что нужно есть, но мне нужно научится «переводить» требования описанные в описании яндекс API на язык дельфи. ВОПРОСЫ |
| Автор: мыш 01.10.22, 09:33 |
| Разобрался сам. Ответы: 1. xml 2. вопрос актуален 3. В теле 4. Нужно в тело добавить код, приведенный в яндекс-примере 5. вопрос актуален 6. Спецификации протоколов hhtp и webDav |
| Автор: Fr0sT 10.10.22, 07:24 |
| 2 - приблуда xml, не заморачивайся 5 - консоль веб-разработчика, вкладка Network |