Синтаксис метода
Дата последнего изменения: 9 марта 2015 г.
Применимо к: SharePoint Foundation 2010
В этой статье
Внедрение метода в URL-адрес
Использование возможности формирования пакетов языка CAML для отправки нескольких запросов
Синтаксис POST-команды для серверных расширений FrontPage от Майкрософт
Формирование POST-команды
Формирование ответа на POST-команду
В описании указанных ниже методов есть раздел "Синтаксис", в котором приводится общая форма вызова метода. Описание форматирования метода в запросе см. в подразделе "Формирование POST-команды".
В Microsoft SharePoint Foundation существует два способа передачи команд с использованием протокола удаленного вызова процедур (RPC). Можно посылать одиночные команды путем встраивания их в URL-адрес, либо воспользоваться возможностью формирования пакетов языка Collaborative Application Markup Language (CAML) для отправки нескольких запросов в одной транзакции.
Внедрение метода в URL-адрес
Путем внедрения запроса в URL-адрес можно передавать серверу, на котором работает SharePoint Foundation, имя метода и требуемые параметры. Используется следующий синтаксис:
http://[site_name]/_vti_bin/owssvr.dll?Cmd=Method_name[&Parameter1=Value1&Parameter2=Value2...]
Дополнительные сведения см. в разделе Протокол URL.
Использование возможности формирования пакетов языка CAML для отправки нескольких запросов
Передача по одной команде в каждом POST-запросе потребует выполнения многократных обращений к серверу, что негативно отразится на производительности. Чтобы уменьшить количество запросов, воспользуйтесь элементом Batch языка CAML для отправки нескольких команд в одном HTTP-запросе. Все запросы должны включать команду верхнего уровня DisplayPost. SharePoint Foundation требует использовать в URL-адресе POST-запросов для всех методов следующий синтаксис:
POST /[Path]/[Subsite]/_vti_bin/owssvr.dll?Cmd=DisplayPost
Примечание |
---|
Если запрос не проходит через прокси-сервер, необходимо непосредственно использовать относительный URL-адрес ресурса сервера. Имя сайта не является частью относительного серверного URL-адреса. |
В SharePoint Foundation для отправки нескольких запросов используется следующий синтаксис:
POST /[Path/][Subweb/]_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost
<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return">
<Method ID="String">
<SetVar Name="Cmd">Method1_name</SetVar>
<SetVar Name="Parameter1">Value1</SetVar>
.
.
.
<SetVar Name="ParameterN">ValueN</SetVar>
</Method>
<Method ID="String">
<SetVar Name="Cmd">Method2_name</SetVar>
<SetVar Name="Parameter1">Value1</SetVar>
.
.
.
<SetVar Name="ParameterN">ValueN</SetVar>
</Method>
.
.
.
<Method ID="String">
<SetVar Name="Cmd">MethodN_name</SetVar>
<SetVar Name="Parameter1">Value1</SetVar>
.
.
.
<SetVar Name="ParameterN">ValueN</SetVar>
</Method>
</ows:Batch>
В следующем примере элемент Batch используется для создания двух настраиваемых списков с именами Meeting Topics и Volunteers.
POST /STSServer1/_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost
<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return">
<Method ID="0,NewList">
<SetVar Name="Cmd">NewList</SetVar>
<SetVar Name="ListTemplate">100</SetVar>
<SetVar Name="Title">Meeting Topics</SetVar>
</Method>
<Method ID="1,NewList">
<SetVar Name="Cmd">NewList</SetVar>
<SetVar Name="ListTemplate">100</SetVar>
<SetVar Name="Title">Volunteers</SetVar>
</Method>
</ows:Batch>
Синтаксис POST-команды для серверных расширений FrontPage от Майкрософт
Каждый метод состоит из имени метода, за которым следует двоеточие (:) и пробел. Далее идет server_extension_version (номер версии серверного расширения), а затем — параметры метода. В начале имени каждого параметра стоит знак амперсанда (&), а непосредственно за именем параметра следует знак равенства (=) без предваряющих пробелов. После знака равенства указывается значение параметра. Например:
&service_name=/fodo4
Для значений параметров используются следующие соглашения:
Шрифт/Код |
Значение |
Пример |
---|---|---|
Курсив |
Переменная |
имя_службы |
Угловые скобки (< >) |
Необязательные данные |
<platform=os> |
Обычный текст |
Литералы |
метод |
Символ альтернативы (|) |
Разделяет равноправные альтернативы |
(true | false) |
Дополнительные сведения о параметрах см. на странице справки для конкретного метода в разделе Параметры.
Большинство POST-команд, передаваемых по протоколу RPC для FrontPage Server Extensions, имеют следующую форму:
POST /directory_name/_vti_bin/_vti_aut/program_name.dll.
HTTP/1.0..Date:.Thu,.03.Dec.1998.19:09:16.GMT..
В предыдущем примереdirectory_name — это имя корневого каталога веб-сайта, а program_name — это имя программы в FrontPage Server Extensions, которой адресована POST-команда. .
За строкой даты следуют строки заголовка HTTP, как демонстрируется в следующем примере:
MIME-Version:.1.0..User-Agent:.client_name/version..
Host:.host_name..Accept:.auth/sicily..
Authorization:.Basic.cm9iZjpUS3NvKjUw.
Content-Length:.64..
Content-Type:.application/x-www-form-urlencoded
X-Vermeer-Content-Type:.application/x-www-form-urlencoded
.
.
.
Эти строки определяют клиентское приложение, которое будет обрабатывать POST-команду, длину и тип POST-команды, а также параметры обеспечения безопасности. Указание в заголовке X-Vermeer-Content-Type, как показано в примере, является обязательным. Сторонние разработчики, которые создают приложения, использующие методы RPC для взаимодействия с SharePoint Foundation, должны включать этот заголовок в свои POST-команды. В противном случае выполнение операции RPC завершится с ошибкой.
Заключительная часть POST-команды содержит имя метода с необходимыми параметрами и их значениями. Например:
method=open+service%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew.
Формирование POST-команды
Первая строка команды содержит слово POST (название метода отправки данных) и используемую версию протокола HTTP. Далее следует несколько HTTP-заголовков, одни из которых являются стандартными, а другие уникальны для FrontPage Server Extensions. Типичная POST-команда выглядит следующим образом:
POST /allnew/_vti_bin/_vti_aut/author.dll HTTP/1.0CRLF
Date: Thu, 03 Dec 1998 19:09:16 GMTCRLF
MIME-Version: 1.0CRLF
User-Agent: MSFrontPage/4.0CRLF
Host: seattleCRLF
Accept: auth/sicilyCRLF
Authorization: Basic cm9iZjpUS3NvKjUwCRLF
Content-Length: 343CRLF
Content-Type: application/x-www-form-urlencodedCRLF
X-Vermeer-Content-Type: application/x-www-form-urlencodedCRLF
CRLF
method=list+documents%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew
&listHiddenDocs=false&listExplorerDocs=false&listRecurse=false&listFiles=true
&listFolders=true&listLinkInfo=true&listIncludeParent=true&listDerived=false
&listBorders=false&listChildWebs=true&initialUrl=&platform=WinI386
&folderList=%5b%3bTW%7c09+Nov+1998+17%3a03%3a25+%2d0000%5dLF
Каждая строка POST-команды, включая заголовки, должна заканчиваться символом возврата каретки и перевода строки (CRLF). Обратите внимание, что согласно протоколу HTTP, CRLF — это байтовая последовательность 0x0d, 0x0a.
Примечание |
---|
Дополнительные сведения о методе POST протокола HTTP и заголовках HTTP см. в спецификации HTTP 1.0 на сайте консорциума W3C. Эта спецификация используется протоколом RPC. |
Секцию заголовков завершает отдельный символ CRLF, за которым следует текст метода, передаваемого по протоколу RPC серверным расширениям FrontPage. Кодируйте пробелы знаком плюс (+), а символы, не являющиеся буквами и цифрами, — с помощью %XX (например, обратная косая черта кодируется как %5c). Добавьте символ перевода строки (LF) в конце данных метода.
Формирование ответа на POST-команду
Когда клиент с помощью POST-команды посылает текст вызова метода серверным расширениям FrontPage, обратно ему передается стандартный код HTTP ОК, подтверждающий получение. FrontPage Server Extensions отвечая на этот метод, возвращает клиентскому приложению кодированную HTML-страницу. Типичный ответ показан в следующем примере:
Content-type: application/x-vermeer-rpc..X-FrontPage-User-Name:
usernameCRLF
CRLF
<html><head><title>vermeer.RPC
packet</title></head>LF<body>.
LF<p>method=list documents:
6.0.x.xxxxLF<p>document_list=
LF<ul>
LF<ul>LF<li>document_name=Default.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|author
LF<li>vti_title
LF<li>SW|Home Page
LF<li>vti_timecreated
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_filesize
LF<li>IX|277
LF<li>vti_modifiedby
LF<li>SR|author
LF<li>vti_nexttolasttimemodified
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_timelastmodified
LF<li>TR|10 Sep 1998 10:07:55 -0700
LF<li>vti_timelastwritten
LF<li>TX|10 Sep 1998 10:07:56 -0700
LF</ul>
LF</ul>
LF<ul>
LF<li>document_name=new1.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|IUSR_author
.
.
.
</body>
</html>
Существует три возможных варианта ответа. Первый: ответная HTML-страница содержит только сообщение об удачном или неудачном завершении вызова метода. Второй: ответная HTML-страница включает только метаданные об объекте метода. Третий: ответ включает и сообщение, и метаданные.
Во всех вариантах ответ начинается с заголовка Content_type. В HTML-странице перед каждым из следующих HTML-тегов должен находиться символ перевода строки (LF): <p>, <li>, <ul> и </ul>.
Сведения о том, как документируются ответы, см. в разделе Возвращаемые значения.