HTTP Post / выгрузка из Visual Basic 6 - PullRequest
2 голосов
/ 09 июня 2009

Я использую Visual Basic 6 и хочу отправить HTTP-сообщение на сервер (он выполняет код Java), отправив пользовательское поле ввода вместе с файлом PDF. PDF-файл должен быть в 64-битной кодировке или использовать обычную работу HTTP-поста через Интернет при загрузке файла. По сути, я просто хочу загрузить файл из моей программы на Visual Basic 6.

Как мне это сделать? Любой пример исходного кода?

1 Ответ

3 голосов
/ 09 июня 2009

Предполагая, что вы знаете, как загрузить PDF в байтовый массив, вы должны получить его в кодировке Base64, а затем отправить его на сервер, используя многокомпонентное кодирование MIME.

Вы можете использовать библиотеки MSXML для выполнения кодирования Base64. См. ссылку для деталей.

Когда у вас есть PDF в виде строки Bas64, вам нужно упаковать его как MIME multipart. Вы можете использовать объект XMLHTTP из MSXML для выполнения этой публикации за вас: -

sEntityBody = "----boundary" & vbCrLf
sEntityBody = sEntityBody & "Content-Disposition: form-data; name=fileInputElementName; filename=""" + sFileName + """" & vbCrLf
sEntityBody = sEntityBody & "Content-Transfer-Encoding: base64" & vbCrLf
sEntityBody = sEntityBody & "Content-Type: application/pdf" &  vbCrLf & vbCrLf
sEntityBody = sEntityBody & sPDFBase64 & vbCrLf
sEntityBody = sEntityBody & "-----boundary--" & vbCrLf & vbCrLf

Set xhr = New MSXML2.XMLHTTP30
xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=-----boundary")
xhr.Open "POST", sUrl, False
xhr.send sEntityBody

Возможно, не элегантно или эффективно, но это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...