Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2017, 13:29   #1
Debauchee
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 41
По умолчанию Авторизация на web-сервере из VBA

Всем доброго времени суток!
Надо получить текстовую страницу с веб-сервера, использующего Basic HTTP Authentication, дальше ее парсить средствами VBA. Нашел такое решение:
Код:
Set WinHttpReq = CreateObject("MSXML2.XMLHTTP")
WinHttpReq.Open "GET", sUrl, bAsync, sUserName, sPassword
WinHttpReq.Send
на локалхосте (Denwer) работает без проблем, на реальном - ни в какую.
Код:
Private Sub getPrice1()
    Dim servUrl As String, validUserName As String, validPassword As String
    Dim oXMLHTTP As Object

    servUrl = "http://some_domain.net/users/getlastprice.php"
    validUserName = "guest"
    validPassword = "demo"

    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", servUrl, False, validUserName, validPassword
        .setRequestHeader "Accept-Charset", "windows-1251,utf-8"
        .send

        Debug.Print "readyState=" & .readyState
        Debug.Print "status=" & .status
        Debug.Print "statustext=" & .statustext
        Debug.Print "GetAllResponseHeaders=" & .GetAllResponseHeaders
    End With

    Set oXMLHTTP = Nothing
End Sub
На локалхосте получаю:
Цитата:
readyState=4
status=200
statustext=OK
GetAllResponseHeaders=Date: Mon, 25 Dec 2017 09:56:41 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.4
X-Powered-By: PHP/5.2.4
Cache-Control: no-cache, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Content-Length: 295
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset=windows-1251
На реальном web-сервере авторизация не срабатывает, хоть логин и пароль правильные и из браузера все чудненько открывается:
Цитата:
readyState=4
status=401
statustext=Authorization Required
GetAllResponseHeaders=Server: nginx
Date: Mon, 25 Dec 2017 09:53:18 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 401
Connection: keep-alive
WWW-Authenticate: Basic realm="Valid-User"
В чем проблема, не могу сообразить...
Какие соображения на эту тему?

Заранее благодарю!
Debauchee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GlassFish security и авторизация на стороннем сервере. alextrof94 Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 23.04.2016 15:20
Настройка внешнего IP на web-сервере. Ol'ga Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 2 01.04.2014 16:39
Авторизация софта через проверку на веб-сервере alexua3d Фриланс 7 04.01.2014 08:41
Авторизация на сервере IIS 7.0 через ASP SashaS ASP.NET 2 16.04.2012 15:27
Авторизация на почтовом сервере (Winsock) BlackOmen Работа с сетью в Delphi 8 02.05.2008 13:58