DO declare LOCAL cBuffer, cEncoded, cDecoded local lcURL, lxmlObj, lcResponse lcWSDL = "https://teligibility.transactions.mckhboc.com:5002/Realtime/services/realtime?WSDL" lcUserName = "testuser1" lcPassword = "Webpass1" cBuffer = lcUserName + ':' + lcPassword lcURL = lcWSDL lxmlObj = CreateObject("Microsoft.XMLHTTP") lxmlObj.Open( "POST", lcURL, .F. ) ** depending on the xml data passed later on, you may need: lxmlObj.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") ***** cEncoded = ToBase64(cBuffer) cDecoded = FromBase64(cEncoded) cAuthenticate = "Basic " + cEncoded lxmlObj.Open("GET", lcURL, .F., cAuthenticate) lxmlObj.Send() && This is where the form pops-up lcResponse = lxmlObj.ResponseText RETURN FUNCTION ToBase64(cSrc) LOCAL nFlags, nBufsize, cDst nFlags=1 && base64 nBufsize=0 = CryptBinaryToString(@cSrc, LEN(cSrc),; m.nFlags, NULL, @nBufsize) cDst = REPLICATE(CHR(0), m.nBufsize) IF CryptBinaryToString(@cSrc, LEN(cSrc), m.nFlags,; @cDst, @nBufsize) = 0 RETURN "" ENDIF RETURN cDst FUNCTION FromBase64(cSrc) #DEFINE CRYPT_STRING_NOCRLF 0x40000000 #DEFINE CRYPT_STRING_NOCR 0x80000000 LOCAL nFlags, nBufsize, cDst nFlags=1 && base64 nBufsize=0 = CryptStringToBinary(@cSrc, LEN(m.cSrc),; nFlags, NULL, @nBufsize, 0,0) cDst = REPLICATE(CHR(0), m.nBufsize) IF CryptStringToBinary(@cSrc, LEN(m.cSrc),; nFlags, @cDst, @nBufsize, 0,0) = 0 RETURN "" ENDIF RETURN m.cDst PROCEDURE declare DECLARE INTEGER CryptBinaryToString IN Crypt32; STRING @pbBinary, LONG cbBinary, LONG dwFlags,; STRING @pszString, LONG @pcchString DECLARE INTEGER CryptStringToBinary IN crypt32; STRING @pszString, LONG cchString, LONG dwFlags,; STRING @pbBinary, LONG @pcbBinary,; LONG pdwSkip, LONG pdwFlags