1 (изменено: igorshemi, 2011-07-29 10:38:29)

Тема: VBA: MSXML2.XMLHTTP: множественные запросы

Здравствуйте!
Написал запрос в AutoCAD для отправки данных на сервер методом GET. Т.к. я с данным языком не знаком совсем (писал методом копи-паста из чужих примеров) прошу проверить его правильность.


Public Sub myGetHTTP(strAction As String)

    Dim grp As String
    Dim HttpNIPI As String  'http-адрес сервера
    Dim locPath As String   'путь к транзитной папке на данном локальном ПК
    
    'формируем строку http-запроса: GET
    HttpNIPI = "http://10.101.21.178/stamp/web_stamp.php?nocache=1&action="
    grp = "&group=" & "501д"
    locPath = "&path=" & "\\10.101.21.165\stamp\Stamp.xls"

    Dim objHTTP As New MSXML2.XMLHTTP

    With objHTTP
        .Open "GET", HttpNIPI & strAction & grp & locPath, False

        .send   '<-- здесь ошибка

        If objHTTP.status >= 400 And objHTTP.status <= 599 Then
            txtXMLResult = "Error Occurred : " & objHTTP.status & " - " & objHTTP.statusText
        Else
            Text = .responseText
            Headers = .getAllResponseHeaders
        End If
    
    End With
    
    Set objHTTP = Nothing
    
    'MsgBox Headers 'проверка передачи

End Sub

Проблема в том, что при запуске на разных ПК результат разный. На одном (моем, win 7 , ip 10.101.21.178), где заведен виртуальный сервер, - все идет как и задумано. На соседнем (win xp, ip 10.101.21.165) - вылетает ошибка "run-time error -2146697211 (800с0005)" на строке ".send", при этом сервер не видит никаких входящих запросов. Оба компа в локальной сети, видят друг друга и без проблем открывают шары друг на друге под "гость". По коду ошибки толком ничего не нагуглилось.
Не пойму в какую сторону копать: то ли сетевых настроек, то ли скрипта .

2

Re: VBA: MSXML2.XMLHTTP: множественные запросы

igorshemi
"run-time error -2146697211 (800с0005)" - это ошибка "Access is denied." (чтобы посмотреть ошибку надо взять из номера ошибки в 16-ом виде младшие 4 цифры и посмотреть, к примеру, здесь)
Т.Е. в первую очередь Вам нужно смотреть настройки виртуального сервера и права доступа к файлу "web_stamp.php".

Для проверки, чтобы вначале исключить скрипт, (и так как у Вас запрос типа GET) Вы можете пробовать открывать Ваш адрес "http://10.101.21.178/stamp/web_stamp.php?nocache=1&action=action&group=501д&path=\\10.101.21.165\stamp\Stamp.xls" (вместо второго action подставьте нужную Вам строку) на втором компьютере через IE и смотреть, что Вам приходит в ответ. А когда заработает - уже пробовать через скрипт.

3

Re: VBA: MSXML2.XMLHTTP: множественные запросы

Spy00000 пишет:

igorshemi
"run-time error -2146697211 (800с0005)" - это ошибка "Access is denied." (чтобы посмотреть ошибку надо взять из номера ошибки в 16-ом виде младшие 4 цифры и посмотреть, к примеру, здесь)
Т.Е. в первую очередь Вам нужно смотреть настройки виртуального сервера и права доступа к файлу "web_stamp.php".

Огромное спасибо, за разъяснения.

Spy00000 пишет:

Для проверки, чтобы вначале исключить скрипт, (и так как у Вас запрос типа GET) Вы можете пробовать открывать Ваш адрес "http://10.101.21.178/stamp/web_stamp.php?nocache=1&action=action&group=501д&path=\\10.101.21.165\stamp\Stamp.xls" (вместо второго action подставьте нужную Вам строку) на втором компьютере через IE и смотреть, что Вам приходит в ответ. А когда заработает - уже пробовать через скрипт.

С интересующего ПК данная страница "web_stamp.php" недоступна (браузер вылетает с "превышен интервал ожидания")
Удалось получить доступ к другому ПК в этой же сети: с него страница web_stamp.php доступна, открывается и работает. Сам vb-скрипт проверить с той машины не дали (боятся, чтоб не угробил и им машину:lol:).
Как я понимаю это значит, что проблемы сетевых настроек конкретного ПК и вопрос малость не по теме форума...

4

Re: VBA: MSXML2.XMLHTTP: множественные запросы

igorshemi пишет:

Огромное спасибо, за разъяснения.

Пожалуйста. НА всякий случай, имейте ввиду, что эти коды подходят не в 100% случаев, т.к. в каких-то случаях у микрософта применяются другие коды ошибок. Так что, если вдруг текст ошибки из "System Error Codes" выглядит неподходящим - надо смотреть где-то ещё.

igorshemi пишет:

С интересующего ПК данная страница "web_stamp.php" недоступна (браузер вылетает с "превышен интервал ожидания")
Удалось получить доступ к другому ПК в этой же сети: с него страница web_stamp.php доступна, открывается и работает. Сам vb-скрипт проверить с той машины не дали (боятся, чтоб не угробил и им машину:lol:).
Как я понимаю это значит, что проблемы сетевых настроек конкретного ПК и вопрос малость не по теме форума...

Похоже что да. На всякий случай (если Вы такого ещё не делали) могу посоветовать проверить на "интересующем ПК" наличие доступа в интернет, и, если доступ есть, подставить в скрипт вместо Вашего адреса адрес какой-нибудь открывающейся через IE страницы (например "http://www.ru/rus/index.html"). Если скрипт ответ получит - дело в Вашем сервере, если нет - дело в настройках "интересующего ПК".