Я хочу обновить продукт PrestaShop с помощью веб-служб из tsql.
У меня уже есть переменная xml, созданная в sql.
Согласно документации PrestaShop, мне необходимо:
[...] Отправка HTTP-запроса POST с полным XML-кодом в виде содержимого тела [...]
Использование Get не вызывает проблем с oa_mothods из sql, нокаков синтаксис для POST / PUT любых переменных xml для создания или обновления существующего продукта?
declare @xmlRIA xml
set @xmlRIA = CAST('<?xml version="1.0" encoding="UTF-8"?>
<prestashop>
<customer>
<id></id>
<id_default_group>3</id_default_group>
<id_lang>1</id_lang>
<newsletter_date_add>0000-00-00 00:00:00</newsletter_date_add>
<ip_registration_newsletter></ip_registration_newsletter>
<last_passwd_gen>2017-04-29 05:34:22</last_passwd_gen>
<secure_key></secure_key>
<deleted>0</deleted>
<passwd></passwd>
<lastname>test</lastname>
<firstname>test</firstname>
<email>kow@testde.com</email>
<id_gender>2</id_gender>
<birthday>0000-00-00</birthday>
<newsletter>0</newsletter>
<optin>0</optin>
<website></website>
<company></company>
<siret></siret>
<ape></ape>
<outstanding_allow_amount>0.000000</outstanding_allow_amount>
<show_public_prices>0</show_public_prices>
<id_risk>0</id_risk>
<max_payment_days>0</max_payment_days>
<active>1</active>
<note></note>
<is_guest>0</is_guest>
<id_shop>1</id_shop>
<id_shop_group>1</id_shop_group>
<date_add>2017-04-29 11:34:22</date_add>
<date_upd>2017-04-29 11:34:22</date_upd>
<reset_password_token></reset_password_token>
<reset_password_validity>0000-00-00 00:00:00</reset_password_validity>
<associations>
<groups>
<group>
<id>3</id>
</group>
</groups>
</associations>
</customer>
</prestashop>
'as XML)
-- Open a connection
EXEC @ret = sp_OACreate 'MSXML2.ServerXMLHTTP', @token OUT;
if @ret <> 0 begin set @MessageError = 'sp_OACreate MSXML2.ServerXMLHttp.3.0 failed' goto final end
EXEC @ret = sp_OAMethod @token, 'open', NULL, 'POST', @url, 'false';
if @ret <> 0 begin set @MessageError = 'sp_OACreate open' goto final end
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Authentication', @authHeader;
if @ret <> 0 begin set @MessageError = 'sp_OACreate Authentication failed' goto final end
EXEC @ret = sp_OAMethod @token, 'setRequestHeader', NULL, 'Content-type', @contentType;
if @ret <> 0 begin set @MessageError = 'sp_OACreate Content-type failed' goto final end
EXEC @ret = sp_OAMethod @token, 'send', NULL, '';
if @ret <> 0 begin set @MessageError = 'sp_OAMethod send failed' goto final end
-- Handle response
EXEC @ret = sp_OAGetProperty @token, 'status', @status OUT;
if @ret <> 0 begin set @MessageError = 'sp_OAGetProperty status' goto final end
EXEC @ret = sp_OAGetProperty @token, 'statusText', @statusText OUT;
if @ret <> 0 begin set @MessageError = 'sp_OAGetProperty statusText failed' goto final end
EXEC @ret = sp_OAMethod @token, 'send', NULL, @xmlria
IF @ret <> 0 RAISERROR('sp_OAMethod SEND 2 failed.', 10, 1);