Ah, I missed the "/1" on the end of the POST URL, which is why it didn't work. As POST creates a new resource under /posts, it should not specify an ID in the URL, so:
select *
from table(systools.HTTPPOSTCLOBVERBOSE('
https://jsonplaceholder.typicode.com/posts','', '')) x
;;
Tim.
________________________________
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Tim Fathers <tim@xxxxxxxxxxxxx>
Sent: 16 November 2020 22:39
To: midrange-l General Questions (midrange-l@xxxxxxxxxxxxxxxxxx) <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: SQL REST HTTPPOSTCLOB error 38000
Hi Darren,
There seems to be an issue with the API you're using as POST doesn't work via Postman either, PUT does work though. Using the VERBOSE version of SQL functions is a better bet as you get a bit more information about what happened in the returned header.
select *
from table(systools.HTTPPUTCLOBVERBOSE('
https://jsonplaceholder.typicode.com/posts/1','', '')) x
;;
Tim.
________________________________
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Darren Strong <darren@xxxxxxxxx>
Sent: 16 November 2020 21:48
To: midrange-l General Questions (midrange-l@xxxxxxxxxxxxxxxxxx) <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: SQL REST HTTPPOSTCLOB error 38000
I've identified a test REST API site that I can use to experiment with, before I start hammering the production site I have in mind. I'm able to use the HTTPGETCLOB, because the site doesn't really need a request body, but, for production, I'm going to need to pass a request, so, I figure I need to use HTTPPUTCLOB.
So, anyway, I'm using the following bit of code, and I'm getting an error back as follows. Does anyone know what I'm doing wrong?
//**************************************************************
dcl-proc $TestAPI;
//
//**************************************************************
dcl-s URL varchar(2048);
dcl-s hdr varchar(10000);
dcl-s Request varchar(5000);
dcl-s Response varchar(5000);
//************
URL='
http://jsonplaceholder.typicode.com/todos/1';
hdr=' ';
Request=' ';
exec sql set :Response=systools.HTTPPOSTCLOB(
:url,:hdr,:Request);
return;
end-proc;
Error:
Message ID . . . . . . : CPF503E Severity . . . . . . . : 30
Message type . . . . . : Sender copy
Date sent . . . . . . : 11/16/20 Time sent . . . . . . : 15:13:17
Message . . . . : User-defined function error on member QSQPTABL.
Cause . . . . . : An error occurred while invoking user-defined function
HTTPPOSTCLOB in library SYSTOOLS. The error occurred while invoking the
associated external program or service program B2RESTUDF: in library
SYSTOOLS.D, program entry point or external name
com.ibm.db2.rest.DB2UDFWrapper.httpPostClob, specific name HTTPP00013. The
error occurred on member QSQPTABL file QSQPTABL in library QSYS2. The error
code is 1. The error codes and their meanings follow:
1 -- The external program or service program returned SQLSTATE 38000. The
text message returned from the program is:
██SYSTOOLS.HTTPPOSTCLOB██HTTPP00013██Premature end of file. .
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.