Загрузить файл TXT или CSV с помощью WinHTTP и LotusScript - PullRequest
1 голос
/ 25 декабря 2009
'Declare long
Dim lng_resolveTimeout, lng_connectTimeout, lng_sendTimeout,
lng_receiveTimeout As Long

'Declare integer
Dim int_serverCredentials As Integer

'Declare variants
Dim var_submitObject As Variant

'Set values
int_serverCredentials = 0

lng_resolveTimeout = 120000 'miliseconds = 2 minutes
lng_connectTimeout = 1200000
lng_sendTimeout = 1200000
lng_receiveTimeout = 1200000

'Create HTTP object
Set var_submitObject = CreateObject("WinHTTP.WinHTTPRequest.5.1")
Call var_submitObject.SetTimeouts(lng_resolveTimeout,
lng_connectTimeout, lng_sendTimeout, lng_receiveTimeout)

'Standards for this post
%REM
Content-Type: multipart/form-data; boundary={boundary}
{boundary}
Content-Disposition: form-data; name="data"; filename="{filename}"
Content-Type: text/plain
{contents}
{boundary}--
%END REM

'Set post parameters
Call var_submitObject.open("POST", str_url, False)
Call var_submitObject.setRequestHeader("Accept", "application/xml")
Call var_submitObject.setRequestHeader("Authorization", "Basic " & str_auth)
Call var_submitObject.setRequestHeader("Content-Type", "multipart/form-data; boundary=b1")
str_boundary = |--b1| & Chr(13) &_
|Content-Disposition: form-data; name="data"; filename="name.txt"| & Chr(13) &_
|Content-Type: text/plain| & Chr(13) &_
str_fileContent & |b1--|
'Send the HTTP request
Call var_submitObject.Send(str_boundary)
'Wait for the answer and set object as returned value for further validation
Call var_submitObject.WaitForResponse
Set submitHTTP = var_submitObject
'Clear memory
Set var_submitObject = Nothing

Вопросы: 1) Как указать «границу» и правильно отправить содержимое файла при загрузке файла TXT? 2) Как указать разрыв строки для этого содержимого границы?

С уважением, заранее!

1 Ответ

1 голос
/ 25 февраля 2010

Относительно вопроса EOL, вы указываете Chr(13), но это не полный перевод строки в Windows (я предполагаю, что вы используете Windows на основе тега winhttp, который вы также упомянули). EOL-сущность в Windows - CR + LF, где возврат каретки - Chr (13), а перевод строки - Chr (10).

Что касается текста, вы указываете его в своем типе контента.

...