I have downloaded the 30 day trial of ChilKat, and successfully converted one of our existing SoapConnection methods. I found these examples from ChilKat helpful, used some code from both, along with code I already wrote using PBDOM to generate the Soap Request.
https://www.example-code.com/powerbuilder/http_windows_integrated_authentication.asp
https://www.example-code.com/powerbuilder/soap_webservice_requiring_auth.asp
Here is a snippet, in case anyone else is interested: ...
oleobject loo_Http //http://www.chilkatsoft.com/refdoc/xChilkatHttpRef.html
oleobject loo_Resp //http://www.chilkatsoft.com/refdoc/xChilkatHttpResponseRef.html
...
ls_XML_to_send = ldom_doc.savedocumentintostring( ) //get request xml string from PBDOM, built outside of this snippet
loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat_9_5_0.Http") //used instead of HTTPClient since HTTPClient doesn't support windows integrated authentication
IF li_rc < 0 THEN
destroy loo_Http
ls_msg = "Connecting to COM object failed"
Exit
END IF
// Setting the HTTP Login equal to the empty string, and the Password equal to the keyword "default"
// will cause Chilkat to use the Microsoft SSPI w/ integrated authentication.
loo_Http.Login = ""
loo_Http.Password = "default"
//explicitly indicate that NTLM or Negotiate authentication is to be used:
loo_Http.NegotiateAuth = 1
// Set the Content-Type of the request.
loo_Http.SetRequestHeader("Content-Type","text/xml")
// Send the request...
loo_Resp = loo_Http.PostXml(ls_url,ls_XML_to_send,"utf-8")
IF loo_Http.LastMethodSuccess <> 1 THEN
ls_msg = loo_Http.LastErrorText
destroy loo_Http
EXIT
END IF
li_StatusCode = loo_Resp.StatusCode
IF li_StatusCode = 200 THEN
//good return code
ELSE
ls_msg = "Bad Status returned from the SSCT service: "+string(li_StatusCode)+": "+ loo_Resp.StatusText
Exit
END IF
ls_returned_XML = loo_Resp.BodyStr
//ls_returned_XML is the response back that needs to be parsed for content ...
//Use PBDOM to process the returned XML string