Option Explicit

'USAGE:
'	string URL
'	string Headers (name=value,name=value...)
'	string RequestFilePath
'
'SAMPLE CALL:
'	HttpPost.vbs https://gateway.monster.com:8443/bgwBroker content-type=text/xml SampleQueryRequest.XML

Dim strURL
Dim strHeaders
Dim strFilePath

'Get the arguments
strURL = WScript.arguments(0)
strHeaders = Split(WScript.arguments(1), ",")	'Split into an array on ","
strFilePath = WScript.arguments(2)

'Call the function
PostXML strURL, strHeaders, strFilePath


Function PostXML(strURL, strHeaders, strFilePath)

	'Variables
	Dim objHTTP
	Dim iHeader
	Dim strHeader
	Dim objXML

	'Constants (enumerated in MSXML4.DLL)
	Const SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS = 2
	Const SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS = 13056

	'Create objects
	Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP.4.0")
	Set objXML = CreateObject("MSXML2.DOMDocument.4.0")

	'Load the request document
	objXML.load strFilePath

	'Set options to ignore cert errors (do this if errors are encountered via browser and are acceptable)
	objHTTP.setOption(SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS) = SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
	'Open connection 
	objHTTP.open "POST", strURL, False

	'Add headers
	If IsArray(strHeaders) Then
		For iHeader = 0 To UBound(strHeaders, 1)
			'Break each header into Name-Value array
			strHeader = Split(strHeaders(iHeader), "=")
			'Add header
			objHTTP.setRequestHeader strHeader(0), strHeader(1)
		Next
	End If

	'Send the request
	objHTTP.send objXML

	'Get the response
	'WScript.Echo objHTTP.responseText	'Use this if there is a non-xml response, or for testing
	WScript.Echo objHTTP.responseXML.xml	'The actual response should be an XML DOM in the responseXML property

	'Clean up
	Set objHTTP = Nothing
	Set objXML = Nothing

End Function