Я пытаюсь использовать адаптер BizTak WCF-WebHttp для отправки в Service Desk Plus CMDB API с помощью сопоставления переменных.
При попытке использовать браузер работает нормально.Для API Service Desk Plus CMDB требуется такой URI (строго сокращенный для удобства чтения):
http://host.com/api/cmdb/ci?OPERATION_NAME=read&TECHNICIAN_KEY=Mykey&format=XML&INPUT_DATA=<?xml version='1.0'?>
<API>
<name>email@host.com</name>
</API>
Я использовал URI http://host.com/api/cmdb/ci и сопоставление URL.
<BtsHttpUrlMapping>
<Operation Url="?OPERATION_NAME=read&TECHNICIAN_KEY=MyKey&format=XML&INPUT_DATA=<?xml version='1.0'?>
<API>
<name>email@host.com</name>
</API>"/>
</BtsHttpUrlMapping>
Этоработает отлично, но мне нужен более динамичный подход.Я попытался использовать сопоставление переменных, поэтому заменил жестко закодированный адрес электронной почты на переменную.
<BtsHttpUrlMapping>
<Operation Url="?OPERATION_NAME=read&TECHNICIAN_KEY=MyKey&format=XML&INPUT_DATA=<?xml version='1.0'?>
<API>
<name>{email}</name>
</API>"/>
</BtsHttpUrlMapping>
При попытке сохранить сопоставление URL-адресов с переменной я получаю сообщение об ошибке.
WCF-WebHttpСвойства транспорта
Ошибка сохранения свойств.(System.InvalidOperationException) UriTemplate
?OPERATION_NAME=read&TECHNICIAN_KEY=MyKey&format=XML&INPUT_DATA=<?xml version='1.0'?><API><name>{email}</name></API>
недопустим;каждая часть строки запроса должна иметь форму «имя = значение», когда значение не может быть составным сегментом.См. Документацию для UriTemplate для получения более подробной информации.
Если я попробую переменную, которая не находится внутри экранированной строки XML, как с ключом, то она будет работать нормально.
<BtsHttpUrlMapping>
<Operation Url="?OPERATION_NAME=read&TECHNICIAN_KEY={key}&format=XML&INPUT_DATA=<?xml version='1.0'?>
<API>
<value>email@host.com</value>
</API>"/>
</BtsHttpUrlMapping>
Мое намерениедолжен иметь возможность использовать переменную в экранированной XML-строке.Если это невозможно;Мне придется обратиться к динамическому адаптеру и создать сопоставление URI и URL в оркестровке.