Skip to content

Mukhtar.kz

  • Главная
6 февраля, 2023 / vbs

Сделать HTTPS запрос на VBS

В интернете есть много решений данного вопроса, но мне подошел только этот. Так как мне нужно было получать файлы вложений по задачам Jira.

Прежде всего создадим переменные

userName = "user" userPass = "Pa$$word1" url = "https://test.txt"

Затем нам нужно будет создать объект MSXML2.ServerXMLHTTP

Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")

Библиотека MSXML2 содержит в себе много объектов по которым можно работать как по протоколу HTTP так и HTTPS, но для нас будет оптимальней использование ServerXMLHTTP так как в нем можно установить таймаут.

Реализуем запрос следующим образом

oXMLHTTP.Open "GET", url, false, userName, userPass oXMLHTTP.setTimeouts 5000, 5000, 10000, 10000 'ms - resolve, connect, send, receive oXMLHTTP.setRequestHeader "Authorization", "Basic " + Base64Encode(userName + ":" & userPass) oXMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" oXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" oXMLHTTP.Send ""

Как видно из примера кода запрос реализуется методом GET. Далее необходимо в заголовок HTTP запроса добавить параметр Authorization в котором значение должно будет передано в Base64, для этого можно использовать следующие функции

Function Base64Encode(inData) 'ripped from:  'http://www.pstruh.cz/tips/detpg_Base64Encode.htm   'rfc1521   '2001 Antonin Foller, PSTRUH Software, http://pstruh.cz   Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"   Dim sOut, I   'For each group of 3 bytes   For I = 1 To Len(inData) Step 3     Dim nGroup, pOut     'Create one long from this 3 bytes.     nGroup = &H10000 * Asc(Mid(inData, I, 1)) + &H100 * MyASC(Mid(inData, I + 1, 1)) + MyASC(Mid(inData, I + 2, 1))     'Oct splits the long To 8 groups with 3 bits     nGroup = Oct(nGroup)     'Add leading zeros     nGroup = String(8 - Len(nGroup), "0") & nGroup     'Convert To base64     pOut = Mid(Base64, CLng("&o" & Mid(nGroup, 1, 2)) + 1, 1) + Mid(Base64, CLng("&o" & Mid(nGroup, 3, 2)) + 1, 1) + Mid(Base64, CLng("&o" & Mid(nGroup, 5, 2)) + 1, 1) + Mid(Base64, CLng("&o" & Mid(nGroup, 7, 2)) + 1, 1)     'Add the part To OutPut string     sOut = sOut + pOut   Next   Select Case Len(inData) Mod 3     Case 1: '8 bit final       sOut = Left(sOut, Len(sOut) - 2) + "=="     Case 2: '16 bit final       sOut = Left(sOut, Len(sOut) - 1) + "="   End Select   Base64Encode = sOut End Function Function MyASC(OneChar)   If OneChar = "" Then MyASC = 0 Else MyASC = Asc(OneChar) End Function

Поделиться:

Post navigation

Previous Post:

Работа с файл сервером по SMB из Oracle

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Рубрики

  • Oracle
  • vbs

©2025 Mukhtar.kz - Powered by Simpleasy