[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Unsupported_grant_type



Hi Scott,

Thanks for that..

The third party wants us to use REST as the protocol.

In the past using SOAP XML was easy to create the necessary steps and
achieve the desired results.

The first step is to simply get an "Access-Token" from their server, and
what we have been told is as follows:

Method: POST HTTP/1.1

URL: https://202.47.1.145/adfAPI/token

Content-Type: application/x-www-form-urlencoded

And pass the following to obtain a result:
grant_type=password&username=PSI&password=Rohit66

Using SOAPUI NX it works just trying to achieve the same using the iSeries
and RPG.

If you have any suggestion they will be gratefully appreciated.

Regards,
Tony



-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: Thursday, June 30, 2016 7:45 AM
To: HTTPAPI and FTPAPI Projects <ftpapi@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: Unsupported_grant_type

Tony,

I'm not familiar with this web service or the error that you're getting.

Please understand that HTTPAPI is just a communication tool.  It
communicates your message to an HTTP server, and communicates that server's
response to you.  If the server (as opposed to HTTPAPI) sends back an error
message, it does not indicate a problem in HTTPAPI.  In fact, quite the
opposite, it tells you that HTTPAPI is doing it's job and handling the
communication.

As an analogy, a telephone is a communications device for humans (whereas
HTTPAPI is for programs.)  Consider the situation where you call your boss
and ask for a raise.  Of course we'd all like nothing better than to hear
"yes, absolutely!"  But, if he gives you a negative response like "sorry,
can't do that", it does NOT mean your telephone is broken.

Likewise, HTTPAPI has sent your data to the web service just as you asked it
to.  We'd all love to get back "success! good job!", but if the message is
negative like "unsupported grant type" (or any other
message)  it does NOT mean that HTTPAPI is broken.  If you want to know why
you're getting that message, you need to discuss that with whomever the
expert on the web service is.

Having said that, I could take some guesses...

You're sending a content-type of application/x-www-form-urlencoded -- this
does not seem to match the data you're sending.  That is the content-type
that a browser uses when submitting an HTML <form> tag, or data formatted in
that same way.  But you are sending raw JSON data -- seems very unlikely
that that is the correct type for that.  You might try "application/json"
instead?  Or ask the web service provider what the proper content-type would
be?

The other strong possibility is that you've formatted your JSON data wrong.
I can't comment on this since I haven't a clue what the right format is, and
I'm also not familiar with the jsonNode() stuff you're using.  Of course,
creating a debug log with the http_debug() API would show exactly what is
sent -- but without knowing what the web service requires, I couldn't tell
you if it is right/wrong.

-SK



On 6/29/2016 4:14 PM, Tony Cesarios wrote:
>      [cid:image001.gif@01D1D29E.B68350E0]
>
>     Hi,
>
>
>     Attempting to create a simple RPG program which will obtain a
>     access-token, however when doing the http_url_post I receive back an
>     error "unsupported_grant_type".
>
>
>     Program is using a combination of HTTPAPI and powerEXT.
>
>
>     Here's the code as it stands:
>
>
>     /copy pextcd2/qsrc,pxapihdr      General
>     H-Spec's
>
>
>
>      * powerEXT Service Program
>     Connector
>
>      /copy pextcd2/qsrc,pxapicgicn    Basic HTTP connecter & Productivity
>     Services
>
>      /copy pextcd2/qsrc,pxapijsncn    YAJL JSON connector
>
>
>
>      * Support for HTTPAPI by Scott
>     Klement
>
>      /copy
>     qrpglesrc,httpapi_h
>
>
>
>      * Declare Internal
>     Variables
>
>     d dsp             s
>     50A
>
>     d dspwait         s
>     1A
>
>
>
>     d rc              s             10I
>     0
>
>     d i               s             10I
>     0
>
>
>
>     d url             s           2048A   Varying
>
>
>
>     d tmpFile         s            256a
>     varying
>
>
>      /free
>
>       // Clear powerEXT Service Program & Responce Object
>
>       clearSrvPgm();
>
>
>       // construct a JSON message with powerEXT JSON support
>
>
>       setContent('*none');
>
>
>       jsonNode('*object');
>
>           jsonNode('*string':'grant_type=':'password');
>
>           jsonNode('*string':'username=':'PSI');
>
>           jsonNode('*string':'password=':'Rohit66');
>
>       jsonEndNode();
>
>
>       // Construct a temporary result file name for HTTPAPI
>
>
>       tmpFile = '/tmp/tst'+uniqueKey+'.json';
>
>
>       // Setup HTTPAPI Url and parms
>
>       HTTP_debug(*on);
>
>       HTTP_SetCCSIDs(1208:0);
>
>       HTTP_SetFileCCSID(1208);
>
>       url = 'https://202.47.1.145/adfAPI/token';
>
>
>       // Send HTTPAPI Request
>
>       rc = http_url_post( url
>
>                         : bufAddr()
>
>                         : bufSize()
>
>                         : tmpfile
>
>                         : HTTP_TIMEOUT
>
>                         : HTTP_USERAGENT
>
>                         : 'application/x-www-form-urlencoded');
>
>
>       // HTTPAPI Error Handling
>
>       if rc <> 1;
>
>         dsply %char(rc);
>
>         dsp = http_error;
>
>         dsply  dsp;
>
>         *inlr = *on;
>
>         return;
>
>       endif;
>
>
>       // Display HTTPAPI result with qcmd method
>
>       qcmd('dspf (''' + tmpFile + ''')');
>
>
>       // Delete object with qcmd method
>
>       qcmd('del (''' + tmpFile + ''')');
>
>
>       *inlr = *on;
>
>      /end-free
>
>
>
>
>
>     Regards,
>
>     Tony Cesarios
>
>
>
> ----------------------------------------------------------------------
> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> -

-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------


-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------