cancel
Showing results for 
Search instead for 
Did you mean: 

Error when making HTTP Post call using Utility VBO

yusuf.hoosain
Level 2
Hi

I am trying to make a SOAP service call to a service which requires certificate for authentication. I am able to make a call using POSTMAN which has the cert and key file loaded on POSTMAN. If I only load the cert without the key file I am unable to make the call.

I have imported the cert using the Utility VBO which returns a cert id.
Using this as an input along with the POSTMAN code stage I have copied all details of the request.
I have made a collection with one row for the headers as per postman:
--header 'Content-Type: text/plain' \




When I make the call using the Utility HTTP I receive the error :

Internal : Could not execute code stage because exception thrown by code stage: Cannot set null or blank methods on request.
Parameter name: value

If I change the method to POST I receive the error below:
Internal : Could not execute code stage because exception thrown by code stage: Object reference not set to an instance of an object.

I have attached the inputs of the request.
31839.jpg
Kindly advise how make this call using the Utility HTTP VBO. 
I tried using the WS Wizard but I am unable to locate the certificate when setting up, error :
No Certificate found matching that criteria. 

31840.jpg

Kindly advise on the steps required to call this service using Blue Prism.

Regards

Yusuf

------------------------------
Yusuf Hoosain
RPA Developer
Africa/Johannesburg
------------------------------​
28 REPLIES 28

HI Marek,

Could you send us a screenshot of the parameters that you have for this call? I have been looking at the code and it would be useful to see your parameters. Please of course obfuscate any sensitive or private data.

regards

------------------------------
Geoff Hirst
Senior DX Engineer - Digital Exchange - EMEA
SS&C Blue Prism
------------------------------
Geoff Hirst Senior DX Engineer - Digital Exchange - EMEA SS&C Blue Prism

@Marek Mroc,

That's funny considering I'm looking at Microsoft's documentation and it clearly shows it as a member of the enumeration. 🤦‍♂️ Did you test both options I showed?

Also, if you could respond to Geoff's question that would help too.

Cheers,


------------------------------
Eric Wilson
Director, Integrations and Enablement
Blue Prism Digital Exchange
------------------------------

Hi Geoff,

the snip below is my setup from POSTMAN which is working:

31708.png

As an parameter in the URL I am providing the Invoice Nr, I copied the whole URL and stored it in dataitem for a testing purpose but this will be changed accordingly to the process. Apart from that as a header I am sending X-Client-Id and Secret for authentication, together with the crt and key files in settings.


So in the BluePrism, I am providing the header only with the Client-ID and secret defined in the collection below:

31709.png
URL which is copied link from POSTMAN and Certificate ID which I was able to load from crt, but due to the fact that I also need a private key, now im trying to load PFX file instead but no success so far.

------------------------------
Marek Mroc
------------------------------

Hi Marek,

Sorry, my bad, I meant the parameters for the Load Certificate action, it has 3 parameters, filename, password and subject. It would be useful to see the parameter values you have set for these.

regards

------------------------------
Geoff Hirst
Senior DX Engineer - Digital Exchange - EMEA
SS&C Blue Prism
------------------------------
Geoff Hirst Senior DX Engineer - Digital Exchange - EMEA SS&C Blue Prism

Hi Geoff,

sorry for this misunderstanding 🙂

31742.png
As you can see only PW and path to file.

@ewilson, I tried both:

31743.png



------------------------------
Marek Mroc
------------------------------

Hi Marek,

Could I suggest an alternative to Eric's response and that is:

X509KeyStorageFlags.EphemeralKeySet or X509KeyStorageFlags.PersistKeySet

and the other alternative as being:

X509KeyStorageFlags.UserKeySet or X509KeyStorageFlags.PersistKeySet 

thanks



------------------------------
Geoff Hirst
Senior DX Engineer - Digital Exchange - EMEA
SS&C Blue Prism
------------------------------
Geoff Hirst Senior DX Engineer - Digital Exchange - EMEA SS&C Blue Prism

Hi Geoff,

when i used X509KeyStorageFlags.EphemeralKeySet or X509KeyStorageFlags.PersistKeySet I still hit an error but diffrent one:

31778.png

X509KeyStorageFlags.UserKeySet or X509KeyStorageFlags.PersistKeySet cause invalid password error again as before.

------------------------------
Marek Mroc
------------------------------

Hi Marek,

This is puzzling, as when I do this, I see this.

31796.png
I don't see an error and I have tried this on frameworks 4.7, 4.7.2 and 4.8.
What version of Blue Prism are you working with?
thanks


------------------------------
Geoff Hirst
Senior DX Engineer - Digital Exchange - EMEA
SS&C Blue Prism
------------------------------
Geoff Hirst Senior DX Engineer - Digital Exchange - EMEA SS&C Blue Prism

@Marek Mroc,

I've been doing some testing with a couple publicly available sites for testing client certificate authentication. What I'm seeing is that the HTTP VBO works as-is. As an example, https://badssl.com is one such test site. You can download their test client certificates from https://badssl.com/download/. I've downloaded their P12 file (which is the same thing as a PFX - both are PKCS 12 format). They list the password for the file on their download page.

If I use the Load Certificate action with the P12 file and password and then perform a GET request against ​their client cert test URL (https://client.badssl.com/), I receive a 200 OK.

31816.png
31817.png
31818.png
In the above example, Force Pre Authorization can be either True or False - it doesn't really matter as it's focused on HTTP Basic Auth.

If I try loading the P12 certificate with an incorrect or missing password, I get the network password error you've seen.

This didn't require any changes to the VBO code. So I'm wondering if it's actually an issue with the certificate you have. You started with a CRT file, correct? This is normally associated with Unix/Linux servers and tend to make use of the PEM format. The PEM format isn't fully supported by .NET (well, it wasn't until .NET 5 I believe), so it may be a case of the certificate works fine with Postman (because Postman isn't based on .NET) but it has issues with Blue Prism.

Did you generate the original CRT file, or was it provided to you?

Cheers,


------------------------------
Eric Wilson
Director, Integrations and Enablement
Blue Prism Digital Exchange
------------------------------