Я пытаюсь использовать функцию HTTPCLOB для выдачи POST-запроса веб-службе, но когда я запускаю программу, я получаю сообщение об ошибке, как в заголовке, независимо от моих попыток сопоставить тип полей моего SQL заявление для тех функции. Вот D-спецификации:
D url s 1024a varying
D httpHeader s 1024a varying inz
D requestMsg s 32000a varying inz
D resHttpHeader s 32000a varying inz
D resMsg s 32000a varying inz
Это оператор SQL:
url = 'https://labelservice.gls-italy.com/AddParcel';
requestMsg = 'XMLInfoParcel: ' + xmlData;
httpHeader = 'Content-Type: application/x-www-form-urlencoded;'
+ ' Content-Length: ' + %char(%len(requestMsg))
;
exec sql
select cast(responseMsg as clob(2G))
// , cast(responseHttpHeader as varchar(512))
into :resMsg
// , :resHttpHeader
from table(systoools.HTTPCLOB(
URL => cast(:url
as varchar(2048)),
HTTPMETHOD => 'POST',
HTTPHEADER => cast(:httpHeader
as clob(10K)),
REQUESTMSG => cast(:requestMsg
as clob(2G))
)
) as httpRequest
;
, где xmlData - это xml -вариант с некоторым содержанием в нем. Я предполагаю, что могут быть другие ошибки, потому что это моя первая попытка использования этой функции. В любом случае, что касается документации IBM, здесь https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzajq/rzajqudfhttpclob.htm типы переменных совпадают. Что я делаю не так?