Domino-nieuwsbrief e-office http post naar Domino server
      
welkom     nieuws 2008     nieuws 2007     nieuws 2006     nieuws 2005     Lotus Notes Domino     e-office

http post naar Domino server
Als u http-verkeer met een http-server wilt genereren (in dit geval Lotus Domino), kunt u naast de browser ook vanuit een andere applicatie data uitwisselen met Lotus Domino. Met http-post en http-get methodes kunt u met een eigen VB applicatie data met de Lotus Domino server uitwisselen.

Lotus Domino begrijpt het Lotus Notes protocol en het HTTP protocol. Voor het HTTP protocol zijn op de Domino server allerlei zaken geregeld zodat http-post en http-get goed worden afgehandeld als deze via de browser wordt benaderd. Het is ook mogelijk om eigen programma's http-post en http-get uit te laten voeren. Zodra u dit naar de Lotus Domino server doet kunt u verschillende berichten sturen. Voor het uploaden van file attachements moet u de zogenaamde file upload control simuleren. Hieronder een stuk code waarin dat wordt gedaan, dit voorbeeld is in VBA gemaakt. Deze code maakt gebruik van velden zoals deze op een formulier staan en met ?Createdocument wordt er een nieuwe Lotus Notes document aangemaakt. Het is ook mogelijk het een en ander met een webagent te doen maar dat is een veel omslachtiger en trager proces.

code:

Private Sub verzenden_Click()

Dim xmlServerHttp As MSXML2.ServerXMLHTTP
Dim lResolve, lConnect, lSend, lReceive As Long
Dim res As Long
Dim sUrl, sUser, sPw As String
Dim strText As String
Dim strFile As String
Dim strText1 As String
Dim eol As String

Dim strDomFile As String

On Error GoTo errh

eol = Chr(13) + Chr(10)

Set xmlServerHttp = New MSXML2.ServerXMLHTTP

Const strBoundary = "---------------------------11415352332517"
Const strField = "Content-Disposition: form-data; name="

lResolve = 1800000 '=3 min msecs
lConnect = 1800000 '=3 min msecs
lSend = 1800000 '=3 min msecs
lReceive = 1800000 '=3 min msecs

Call xmlServerHttp.setTimeouts(lResolve, lConnect, lSend, lReceive)
sUrl = "http://www.e-office.com/eofupload.nsf/upload?createdocument"
'sUrl = "http://www.e-office.com/eofupload.nsf/upload?OpenForm&Seq=1"
sUser = user
sPw = "password"
Call xmlServerHttp.Open("POST", sUrl, False, sUser, sPw)

xmlServerHttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=" + strBoundary

strText = "--" + strBoundary + eol + strField + Chr(34) + "title" + Chr(34) + eol + eol + "arjan" + eol
strText = strText + "--" + strBoundary + eol + strField + Chr(34) + "status" + Chr(34) + eol + eol + "test" + eol

strDomFile = "%%File..C125736A0020E23A.4c43d55f63bdca65c125736a0020e7eb.$Body.0.1F64"
'%%File.c125736a0020e23a.4c43d55f63bdca65c125736a0020e7eb.$Body.0.8F2
strText = strText + "--" + strBoundary + eol + strField + Chr(34) + strDomFile + Chr(34) + "; filename=" + Chr(34) + "snelkoppelingen.swf" + Chr(34) + eol + "Content-Type: */*" + eol + eol + getbase64code() + eol

strText = strText + "--" + strBoundary + "--" + eol + eol

Dim bPostData() As Byte
ReDim bPostData(Len(strText) - 1)
bPostData = StrConv(strText, vbFromUnicode)

Call xmlServerHttp.send(bPostData)

xmlServerHttp.getAllResponseHeaders
TextBox1.Text = xmlServerHttp.responseText + eol + strText


Exit Sub

errh:
MsgBox Error

End Sub

Function getbase64code() As String

Dim strfilepath As String
Dim intInFile As Integer
' this file is already base64 encoded

strfilepath = "c:\temp\IMGP0667.JPG"
' strfilepath = "c:\temp\snelkoppelingen.swf"
intInFile = FreeFile

Open strfilepath For Input As intInFile

lngChars = LOF(intInFile)

getbase64code = Input(lngChars, intInFile)


End Function