Das Notes Forum

Lotus Notes / Domino 9 => ND9: Entwicklung => Thema gestartet von: TheHessian am 06.11.20 - 11:57:19



Titel: XMLHTTP Post Request in LotusScript
Beitrag von: TheHessian am 06.11.20 - 11:57:19
Hallo Zusammen,

ich bin auf der Suche nach einer Lösung, wie ich eine PDF-Datei per XMLHTTP Post Request an einen Server schicken kann.
Leider habe ich noch nirgends eine Lösung dafür gefunden.

   Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
   xmlhttp.open "POST", sWebService, False
   xmlhttp.setRequestHeader "X-Api-Key", sToken
   xmlhttp.setRequestHeader "content-type", "application/pdf"
   xmlhttp.send(???)

Die Frage ist, wie bekomme ich das PDF in den Playload des Request?
Wäre toll, wenn mir jemand einen Tipp geben kann!?

Danke!

MfG
Marcus


Titel: Re: XMLHTTP Post Request in LotusScript
Beitrag von: ghostmw am 06.11.20 - 17:22:14
.. nach ein wenig google, kam folgendes heraus, das klingt für mich logisch:

...
xmlhttp.setRequestHeader "content-type", "application/pdf"
xmlhttp.setRequestHeader "Content-Length", Len(PdfData)    ' WICHTIG meiner Meinung nach
xmlhttp.send PdfData
...

Ist nur die Frage ob man das BASE64-codiert oder in welchem Format das da rein muss.
Das dürfest du aber mit ein wenig Googlen noch heraus finden.

Schönen Abend / Wochenende
LG
Marco


Titel: Re: XMLHTTP Post Request in LotusScript
Beitrag von: TheHessian am 09.11.20 - 14:31:07
Hallo,

das ist ja gerade mein Problem, dass ich nicht weiss, wie ich die PDF Datei aufbereiten muss, dass sie über den SEND Befehl übermittelt werden kann.
Eigentlich kann der SEND Befehl als Parameter nur einen STRING verarbeiten.

MfG
Marcus Müller


Titel: Re: XMLHTTP Post Request in LotusScript
Beitrag von: Tode am 09.11.20 - 16:09:22
Du kannst ein Mime- Item hierzu "missbrauchen" (siehe diesen Best Practice Artikel (https://atnotes.de/index.php?topic=52040.0)):

Code:
Dim stream as NotesStream
Dim ses as New NotesSession
Dim db as NotesDatabase
Dim doc as NotesDocument
Dim mimeent as NotesMimeEntity
Dim strEncodedFile as String
Set db = ses.CurrentDatabase
Set stream = ses.CreateStream()
call stream.Open( PathToYourAttachment )
Set doc=New NotesDocument(db)
Set miment=doc.CreateMIMEEntity
Call miment.SetContentFromBytes(stream, "", ENC_IDENTITY_BINARY)
Call miment.EncodeContent(ENC_BASE64)
strEncodedFile =miment.ContentAsText()