Hallo,

ich habe gerade ein Problem beim SYSTOOLS.URLENCODE festgestellt, wenn in meiner URL Leerzeichen vorkommen. Hier ist ein Beispiel:

Code:
SELECT *
FROM XMLTABLE('$doc/hibcData'
      PASSING
      XMLPARSE(DOCUMENT SYSTOOLS.HTTPGETCLOB
('http://ban:8080/webservices/hibc/code1/' concat systools.urlencode('+DIVO6676681', 'UTF-8') concat '/code2/' concat systools.urlencode('+$$3191208W00158 C', 'UTF-8'), ''))
AS "doc"
COLUMNS
	Lic VARCHAR(4) PATH 'lic',
	ProdNumber VARCHAR(18) PATH 'productNumber',
	ExpDate VARCHAR(8) PATH 'expiryDate',
	Lot VARCHAR(18) PATH 'lotNumber',
	Serial VARCHAR(18) PATH 'serialNumber',
	ProdDate VARCHAR(8) PATH 'productionDate',
	Unit VARCHAR(1) PATH 'unit',
	Quantity VARCHAR(5) PATH 'quantity'
) AS WebServiceResult;
Ich übergebe meinem REST-Webservice hier 2 Parameter (CODE1 und CODE2 mit den jeweiligen Werten). In CODE2 ist ein Leerzeichen vorhanden. Jetzt hätte ich eigentlich erwartet, dass dieses Leerzeichen in "%20" encodiert wird. Es wird aber in ein "+" encodiert und somit im Webservice als normales Pluszeichen interpretiert anstatt als Leerzeichen.

Wie kann ich dieses Problem umgehen? In anderen Sprachen gibt es z.B. urlencode() für "+" und rawurlencode() für "%20".

Gruß,
KM