Receiving RNQ0222/MCH3601 when using XML-INTO
Posted: Mon Jun 17, 2024 6:24 am
Hi Scott,
We have been using HTTP_REQ() from quiet sometime in our organization and have always used XML-INTO to parse the response.
In some scenarios, we have used XML-INTO multiple time to retrieve different value from the response received and it has always worked.
recently, I have been receiving pointer error when XML-INTO is called second time. could you please advise what could be the issue here?
I have attached code snippets and error screenshots.
Thank you,
Shweta
Code Snippet:
S_RESPONSE =
'<?xml version="1.0" encoding="UTF-8"?>+
<response><interestRate>7.13</interestRate>+
<repay>71617.14</repay>+
</response>';
xml-into intRate %xml(S_RESPONSE: 'case=any ns=remove + ==> works fine, intRate = 7.13
path=response/interestRate');
xml-into repayAmt %xml(S_RESPONSE: 'case=any ns=remove + ====> Pointer error
path=response/repay');
D intRate s 7P 4
D repayAmt s 15P 4
http log
HTTPAPI Ver 1.34 released 2017-03-15
NTLM Ver 1.4.0 released 2014-12-22
OS/400 Ver V7R4M0
New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819. ProtLoc=0
http_setauth(): entered
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry : 2
DNS resolver options: x'00000136'
DNS default domain: PEPPERAUS.LOCAL
DNS server found: 10.150.33.10
DNS server found: 10.150.33.4
https_init(): entered
QSSLPCL = *OPSYS
SSL version 2 support disabled
SSL version 3 support disabled
Old interface to TLS version 1.0 support enabled
TLS version 1.0 support enabled
TLS version 1.1 support enabled
TLS version 1.2 support enabled
-------------------------------------------------------------------------------------
Dump of local-side certificate information:
-------------------------------------------------------------------------------------
Nagle's algorithm (TCP_NODELAY) disabled.
SNI hostname set to: api-test.pepper.com.au
-------------------------------------------------------------------------------------
Dump of server-side certificate information:
-------------------------------------------------------------------------------------
Cert Validation Code = 6000
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
SetError() #49: SSL_protocol: Unknown protocol 5000
Protocol Used:
http_persist_req(POST) entered.
http_long_ParseURL(): entered
http_long_ParseURL(): entered
do_oper(POST): entered
There are 0 cookies in the cache
POST /sit/v1/mortgage/ctl/settlement/interestRate HTTP/1.1
Host: api-test.pepper.com.au
User-Agent: http-api/1.34
Content-Type: application/xml
Content-Length: 260
Authorization: Basic testAbC1234567890123456789abcdefghijklmnopqrstuVwXyZ=
senddoc(): entered
<?xml version="1.0" encoding="utf-8"?> <interestRate xmlns="https://api-test.pepper.com.au/sit/v1/m ... terestRate>
recvresp(): entered
HTTP/1.1 200 OK
Date: Mon, 17 Jun 2024 05:14:05 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 143
Connection: keep-alive
x-correlation-id: 6acd38f0-2c68-11ef-b49b-06cd621c2869
Strict-Transport-Security: max-age=31536000; includeSubdomains;
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
section-io-id: 8bf5c9496144be543ddd6c28451370bb
SetError() #13: HTTP/1.1 200 OK
recvresp(): end with 200
recvdoc parms: identity 143
header_load_cookies() entered
recvdoc(): entered
SetError() #0:
recvdoc(): Receiving 143 bytes.
<?xml version='1.0' encoding='UTF-8'?>
<response>
<interestRate>7.13</interestRate>
<repaymentAmount>71617.14</repaymentAmount>
</response>
http_close(): entered
We have been using HTTP_REQ() from quiet sometime in our organization and have always used XML-INTO to parse the response.
In some scenarios, we have used XML-INTO multiple time to retrieve different value from the response received and it has always worked.
recently, I have been receiving pointer error when XML-INTO is called second time. could you please advise what could be the issue here?
I have attached code snippets and error screenshots.
Thank you,
Shweta
Code Snippet:
S_RESPONSE =
'<?xml version="1.0" encoding="UTF-8"?>+
<response><interestRate>7.13</interestRate>+
<repay>71617.14</repay>+
</response>';
xml-into intRate %xml(S_RESPONSE: 'case=any ns=remove + ==> works fine, intRate = 7.13
path=response/interestRate');
xml-into repayAmt %xml(S_RESPONSE: 'case=any ns=remove + ====> Pointer error
path=response/repay');
D intRate s 7P 4
D repayAmt s 15P 4
http log
HTTPAPI Ver 1.34 released 2017-03-15
NTLM Ver 1.4.0 released 2014-12-22
OS/400 Ver V7R4M0
New iconv() objects set, PostRem=819. PostLoc=0. ProtRem=819. ProtLoc=0
http_setauth(): entered
http_persist_open(): entered
http_long_ParseURL(): entered
DNS resolver retrans: 2
DNS resolver retry : 2
DNS resolver options: x'00000136'
DNS default domain: PEPPERAUS.LOCAL
DNS server found: 10.150.33.10
DNS server found: 10.150.33.4
https_init(): entered
QSSLPCL = *OPSYS
SSL version 2 support disabled
SSL version 3 support disabled
Old interface to TLS version 1.0 support enabled
TLS version 1.0 support enabled
TLS version 1.1 support enabled
TLS version 1.2 support enabled
-------------------------------------------------------------------------------------
Dump of local-side certificate information:
-------------------------------------------------------------------------------------
Nagle's algorithm (TCP_NODELAY) disabled.
SNI hostname set to: api-test.pepper.com.au
-------------------------------------------------------------------------------------
Dump of server-side certificate information:
-------------------------------------------------------------------------------------
Cert Validation Code = 6000
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
SetError() #49: SSL_protocol: Unknown protocol 5000
Protocol Used:
http_persist_req(POST) entered.
http_long_ParseURL(): entered
http_long_ParseURL(): entered
do_oper(POST): entered
There are 0 cookies in the cache
POST /sit/v1/mortgage/ctl/settlement/interestRate HTTP/1.1
Host: api-test.pepper.com.au
User-Agent: http-api/1.34
Content-Type: application/xml
Content-Length: 260
Authorization: Basic testAbC1234567890123456789abcdefghijklmnopqrstuVwXyZ=
senddoc(): entered
<?xml version="1.0" encoding="utf-8"?> <interestRate xmlns="https://api-test.pepper.com.au/sit/v1/m ... terestRate>
recvresp(): entered
HTTP/1.1 200 OK
Date: Mon, 17 Jun 2024 05:14:05 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 143
Connection: keep-alive
x-correlation-id: 6acd38f0-2c68-11ef-b49b-06cd621c2869
Strict-Transport-Security: max-age=31536000; includeSubdomains;
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
section-io-id: 8bf5c9496144be543ddd6c28451370bb
SetError() #13: HTTP/1.1 200 OK
recvresp(): end with 200
recvdoc parms: identity 143
header_load_cookies() entered
recvdoc(): entered
SetError() #0:
recvdoc(): Receiving 143 bytes.
<?xml version='1.0' encoding='UTF-8'?>
<response>
<interestRate>7.13</interestRate>
<repaymentAmount>71617.14</repaymentAmount>
</response>
http_close(): entered