We are using PostURL() of INET object for sending post request. This function works fine with http URL but If we use PostURL with a "HTTPS" it fails with the error code -5 (Unsupported secure (HTTPS) connection attempted). Could you please confirm whether the PostURL() supports https post?
I found in one of the Appeon forum that there is an alternate function PostData() in HTTPClient object which would support https URL. Please confirm whether this Postdata() supports both http and https post. Also please let us know what is the function that we can use to get the response, because we need to import the response in the datawindow. We need help to figure out the function which supports both http and https post and also we should be able to receive the response and display it in UI. Below is the code that we are using for http URL,
// create objects
l_inet_result = Create n_oi_print_ir
l_inet = Create inet
//Form and submit XML to API
ls_method = 'printdatarequest'
ls_xml = dw_search.Describe("DataWindow.data.xml")
ll_pos = Pos(ls_xml, '<apiRequest>')
ls_xml = Right(ls_xml, Len(ls_xml) - ll_pos + 1)
ls_url = is_URL
ls_data = 'trackingNumber=' + ls_tracking_nbr
ls_data += '&method=' + ls_method
ls_data += '&data=' + ls_xml
ll_rc = GetContextService( "Internet", l_inet )
IF ll_rc < 0 THEN
Post of_DisplayError ('OI-1999|Unable to get Context Service in Retrieve clicked event')
Return
End If
lblb_args = Blob( ls_data, EncodingUTF8! )
ll_length = Len( lblb_args )
ls_headers = "Content-Type: application/x-www-form-urlencoded~nContent-Length: " + String( ll_length ) + "~n~n"
ll_rc = l_inet.PostURL( ls_url, lblb_args, ls_headers, l_inet_result)
IF ll_rc < 0 THEN
// From the PowerBuilder Help for PostURL
choose case ll_rc
case -1
ls_Text = 'General error'
case -2
ls_Text = 'Invalid URL'
case -4
ls_Text = 'Cannot connect to the Internet'
case -5
ls_Text = 'Unsupported secure (HTTPS) connection attempted'
case -6
ls_Text = 'Internet request failed'
end choose
Post of_DisplayError ('OI-1999|' + ls_Text + ', Return Code = ' + Trim (String (ll_rc)) + '.~r~n~r~nPlease verify the URL value in the System Settings is correct.')
Return
End If
//Process return XML
ls_return = String(l_inet_result.iblb_ir, EncodingUTF8!)
If Pos(ls_return, '<status>success</status>') = 0 Then
// If it's not successful handle the Exception
ll_start = Pos(ls_return, '<exception>') + 11
ll_length = Pos(ls_return, '</exception>') - ll_start
ls_error = Mid(ls_return, ll_start, ll_length)
If Pos(ls_error, '&apos') > 0 Then
ls_error = Replace(ls_error, Pos(ls_error, '&apos'), 6, '')
End If
If Len (Trim (ls_error)) > 0 Then
Post of_DisplayError ('OI-0207|' + ls_error)
Else
Post of_DisplayError ('OI-1999|An unknown error has occured in the Retrieve clicked event after the PostURL.~r~n~r~nPlease verify the URL value in the System Settings is correct.')
End If
Return
End If
If Pos(ls_return, 'outputPreference') = 0 Then
// No values returned
dw_list.Event ue_nothingFound()
Return
End If