Поделиться через


Синтаксис метода

Дата последнего изменения: 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>.

Сведения о том, как документируются ответы, см. в разделе Возвращаемые значения.