#vbscript #https
#vbscript #https
Вопрос:
Я хочу знать, как сделать запрос HTTPS с клиента VBScript.
Как расшифровать ответ HTTPS после получения запроса?
Ответ №1:
dim xHttp: Set xHttp = createobject("MSXML2.ServerXMLHTTP")
xHttp.Open "GET", "https://yourhost.example.com/foo", False
' 2 stands for SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS
' 13056 means ignore all server side cert error
xHttp.setOption 2, 13056
xHttp.Send
' read response body
WScript.Echo xHttp.responseBody
Ссылка:
Комментарии:
1.
xHttp.responseBody
должно бытьxHttp.responseText
. Использовал его для настройки запросов Facebook API, для которых требуется HTTPS. Хотя я полагаю, что это очень плохая практика с точки зрения безопасности, просто обходя все ошибки, это работает для тестирования.2. Ваш код не работает с
https
. (Только сhttp
).xHttp.Send
выдает ошибку времени выполнения -2147012744. Вы тестировали свой код?
Ответ №2:
HTTPS — это не просто формат шифрования — это протокол безопасности транспорта со встроенным сложным согласованием. Точно так же, как вы не пытались бы создавать HTTP-клиентский компонент в VBScript, аналогичным образом вы не пытались бы создавать HTTPS / SSL-клиент.
Язык VBScript не включает в себя ни одного HTTP-или HTTPS-клиента, но в Windows есть пара COM-объектов, которые можно использовать (из Windows Script Host или из ASP-страниц, написанных на VBScript), и код VBScript, запущенный в Internet Explorer, может аналогичным образом обращаться к объекту браузера, который разрешает вызовы HTTPS.
В Windows (WSH / ASP) лучшим объектом обычно является MSXML2.ServerXMLHTTP, например, смотрите этот краткий обзор:http://www.developerfusion.com/article/3272/posting-form-data-to-a-web-page/2 /
В Internet Explorer, пока вы не имеете дело с устаревшими версиями, лучшая идея — использовать стандартный кроссбраузерный объект XMLHttpRequest. На следующей странице представлен обзор:http://www.jibbering.com/2002/4/httprequest.html
Все эти HTTP-клиенты также поддерживают HTTPS.
Комментарии:
1. Я попробовал код ссылки developerfusion.com/article/3272 / … вы предоставили, и это не работает с
https
! (Только сhttp
). Вы сами тестировали / проверяли ссылку? Если нет, то это не нормально! В любом случае, ни одна из предоставленных вами ссылок не содержитhttps
. Это тоже не нормально.2. @Apostolos Я не буду тратить много времени на ваши странно агрессивные комментарии… Объект MSXML2.ServerXMLHTTP обычно поддерживает HTTPS и будет работать для сотен или тысяч посетителей этого вопроса, но он зависит от множества механизмов операционной системы Windows, которые могут выходить изстроя по-разному. Я не знаю кода ошибки -2147012744, который вы упомянули ниже, но я предполагаю, что либо что-то сломано в вашем развертывании Windows, или что это несовместимо с сервером HTTPS, к которому вы пытаетесь подключиться, например, Windows XP в наши дни не поддерживается многими серверами.
3. Вы уже потратили слишком много! 🙂 Прошу прощения за оскорбление. Я просто ненавижу видеть код, который не работает (он выдает ошибки). Я разместил здесь много кода, и я всегда тестирую его перед этим. И я ожидаю, что другие программисты сделают то же самое. Вот и все.