curl \
--dump-header header.txt \
--header 'SOAPAction: http://sap.com/xi/WebService/soap1.1' \
--header 'Content-Type: text/xml;charset=UTF-8' \
--output response2.html \
--data-binary @requestfile.xml \
--trace trace.txt \
--write-out "%{http_code} %{http_connect} " \
--insecure \
--proxy proxyhost:port \
--user user:password \
https://host:port/context
#--proxy-ntlm \#--proxy-user "user:password" \#--cert ./demo.pem:password \ # soap 1.2#--header 'Content-Type: application/soap+xml;charset=UTF-8' \# soap 1.1#--header 'Content-Type: text/xml;charset=UTF-8' \ #--http1.0 \ *** request payload for soap 1.1 ***set the namespace accordinglySOAP 1.1 : http://schemas.xmlsoap.org/soap/envelope/
SOAP 1.2 : http://www.w3.org/2003/05/soap-envelope
Exchange for your payload <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> </soap:Header> <soap:Body> <UtilitiesDeviceERPSmartMeterReplicationBulkConfirmation> <MessageHeader> <CreationDateTime>2012-09-20T12:35:27.969Z</CreationDateTime> </MessageHeader> <UtilitiesDeviceERPSmartMeterReplicationConfirmationMessage> <MessageHeader> <CreationDateTime>2012-09-20T12:35:27.974Z</CreationDateTime> </MessageHeader> <UtilitiesDevice> <ID>1234</ID> </UtilitiesDevice> <Log></Log> </UtilitiesDeviceERPSmartMeterReplicationConfirmationMessage> <Log></Log></UtilitiesDeviceERPSmartMeterReplicationBulkConfirmation> </soap:Body></soap:Envelope>
And a vbs script you can use until you have curloption explicit'' Makes a httpcall binary clean, and sends data from a file'' Author: Otto Frost'' Copyright: Otto FrostDim url ' url to send toDim file ' file to send, UNC pathurl = "http://host:port/context"''You must code special characters such as forward slash (/), hyphen (-), period (.), or colon (:) with escape characters''(for example, %2F for /, %2D for -, %2E for .,and %3A for :).''exampleurl = "http://www.bisgateway.com/brg/services/NRGDecisionSupportDSC"
file = "soap_request20051219.155753.0.xml"'' headers have to be changed below this lineDim strmSet strm = CreateObject("ADODB.Stream")'Dim IE As SHDocVw.InternetExplorerDim g_oIE 'As InternetExplorer ' Global reference to an ' instance of IESet g_oIE = CreateObject("InternetExplorer.Application")g_oIE.Visible = True'Private Sub cmdSubmit_Click()Dim edtPostData''edtPostData.Text = "" ' Initialize an edit box for testingDim aByte''ReDim aByte(0) 'As Byte ' Array of bytes to hold data to post ' Extract the URL encoded data from the UI, ' and pack it into an array of bytes''cFlavor = "Orange"''cParamName = "FName="''cParamFlavor = "Flavor="''cSeparator = "&"''cPostData = cParamName & "F1" & cSeparator & cParamFlavor & cFlavor''PackBytes aByte, cPostDatastrm.Type = 1strm.Openstrm.Type = 1strm.LoadFromFile file''strm.WriteText cPostDatastrm.Position = 0strm.Type = 1aByte = strm.Read ' For testing, rebuild the POST data and stuff ' it into an edit box''For i = LBound(aByte) To UBound(aByte)'' edtPostData = edtPostData + Chr(aByte(i))''NextDim vPost 'As VariantvPost = aByte ' Assign the byte array to a VARIANTDim vFlags 'As VariantDim vTarget 'As VariantDim vHeaders 'As VariantvHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)vHeaders = "content-type: text/plain; charset=UTF-8" + Chr(10) + Chr(13)vHeaders = "content-type: text/plain;UTF-8" + Chr(10) + Chr(13)''vHeaders = "content-type:application/octet-stream" + Chr(10) + Chr(13)vHeaders = "content-type: application/octet-stream" + Chr(10) + Chr(13)vHeaders = ""''vHeaders = "SOAPAction: NRGDecisionSupportDSC" & Chr(10) & Chr(13)vHeaders = vHeaders & "SOAPAction: NRGDecisionSupportDSC" & Chr(10) & Chr(13)''vHeaders = vHeaders & "SOAPAction: http://www.dnbnordic.com/brg/NRGDecisionSupportDSC/request" & Chr(10) & Chr(13)vHeaders = vHeaders & "Content-Type: text/xml" & Chr(10) & Chr(13)''Content-Length: nnnn''Content-Encoding: gzip''Content-Type: image/gif''Content-Type: text/html; charset=ISO-8859-4''Transfer-Encoding: chunked ' You're done. Now call Navigate ' Note: modify path to server as appropriateg_oIE.Navigate url, vFlags, vTarget, vPost, vHeaders
' Private Sub Form_Load() ' Create an instance of IE' Set g_oIE = New InternetExplorer' g_oIE.Visible = True ' Populate a combobox with some flavor choices' cboFlavor.List(0) = "Vanilla"' cboFlavor.List(1) = "Chocolate"' cboFlavor.List(2) = "Strawberry"' cboFlavor.ListIndex = 0 ' The default choice' End Sub ' Utility function to pack the data to post into an array of bytes'Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)Sub PackBytes(ByteArray() , ByVal PostData ) iNewBytes = Len(PostData) - 1 ' Get rid of the null termination If iNewBytes < 0 Then Exit Sub End If ReDim ByteArray(iNewBytes) For i = 0 To iNewBytes ch = Mid(PostData, i + 1, 1) If ch = Space(1) Then ch = "+" End If ByteArray(i) = Asc(ch) NextEnd Sub