На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> PROPPATCH протокола WebDAV – как настроить параметры?
    Друзья. Нигде не могу найти хоть какой-нибудь информации о методе PROPPATCH. Подскажите как правильно передать требуемые параметры? Список конкретных вопросов в конце.

    ЗАДАЧА:
    Получить в ответ от сервера https://webdav.yandex.ru/ публичную ссылку на файл, хранящийся на яндекс-диске.

    БИБЛИОТЕКА:
    Synaps

    УДАЛОСЬ СДЕЛАТЬ:
    Реализовать метод MKCOL. Успешно создаются папки.

    Код:
    ExpandedWrap disabled
      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/, расположенная в корневом каталоге Диска пользователя.

    ExpandedWrap disabled
      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 на язык дельфи.

    ВОПРОСЫ
    1. На каком языке написан пример яндекса?
    2. Что такое пространство имен urn:yandex:disk:meta ?
    3. Изменения в пространстве имен нужно декларировать в заголовках класса или в теле запроса (в ссылке)?
    4. Как конкретно задать этому пространству имен значение? Пример строки в URL или в параметре класса.
    5. Как посмотреть что отсылает браузер серверу при нажитии на кнопку «получить ссылку на файл»? (подозреваю что анализ запросов – единственный способ изучения темы в отсутствие примеров.
    6. Что почитать на эту тему чтобы досконально разобраться в этом? Я раньше никогда не программировал для вэб, но хочу научиться.
    Сообщение отредактировано: мыш -
      Разобрался сам. Ответы:
      1. xml
      2. вопрос актуален
      3. В теле
      4. Нужно в тело добавить код, приведенный в яндекс-примере
      5. вопрос актуален
      6. Спецификации протоколов hhtp и webDav
        2 - приблуда xml, не заморачивайся
        5 - консоль веб-разработчика, вкладка Network
        Сообщение отредактировано: Fr0sT -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0233 ]   [ 16 queries used ]   [ Generated: 28.11.22, 06:08 GMT ]