Страницы: 1
RSS
Подключение через прокси с MSXML2.ServerXMLHTTP.6.0, не получается подключиться к прокси
 
Доброго времени суток.

Нужно подключиться к прокси из VBA.
Сделал тестовую процедуру, но подключиться не получается (ничего не возвращается. наверное и не уходит). Прокси точно рабочий (проверял).
Если пробовать послать запрос без прокси - всё отрабатывает нормально.
Подскажите что не так.
Код
Sub CheckProxy()
    On Error Resume Next: Err.Clear
    With CreateObject("MSXML2.ServerXMLHTTP.6.0")
        .setProxy 2, "77.37.202.134:10187"
        .setProxyCredentials "Login", "Pass" 'логин и пароль ввожу правильные
        .Open "GET", "https://clarity-project.info", False
        .setTimeouts 10000, 10000, 10000, 10000
        .send ("")
        a = .Status
        If .Status = 200 Then
            Debug.Print .responseText
        End If
    End With
End Sub
Изменено: Shadow.ua - 07.12.2021 00:48:12
 
Вот так попробуйте:
Код
Sub CheckProxy()
    With CreateObject("MSXML2.ServerXMLHTTP.6.0")
        .Open "GET", "https://clarity-project.info", False
        .setProxy 2, "77.37.202.134:10187"
        .setProxyCredentials "Login", "Pass" 'логин и пароль ввожу правильные
        .setTimeouts 10000, 10000, 10000, 10000
        .send ("")
        Debug.Print .Status, .statustext
    End With
End Sub

У меня работает
 
Цитата
Вот так попробуйте:
Да, действительно, так работает. Спасибо ))
 
Добрый день.

Пробую отправить данные методом POST таким макросом через прокси
Код
    Set headers = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    headers.Open "POST", endpoint, False
    headers.setProxy 1, "proxy.com:222"
    headers.setProxyCredentials "user", "pass"
    headers.setRequestHeader "Content-Type", "application/json"
    headers.setRequestHeader "Authorization", "Bearer " & apikey
    body = "body"
    headers.send body

Все работает, но если указать неправильный пароль от прокси, то все равно все работает.
Получается что данные идут не через прокси, а напрямую.

Пробовал подставлять разные объекты
CreateObject("WinHttp.WinHttpRequest.5.1")
CreateObject("MSXML2.XMLHTTP")
Они работают, но только напрямую, если закоментировать строчки с прокси.

Как правильно отправить данные, чтобы они передавались именно через прокси?
 
fjeka, Почему setProxy 1 а не setProxy 2

1 SXH_PROXY_SET_DIRECT

The SXH_PROXY_SET_DIRECT option can be used to specify that all HTTP and HTTPS servers should be accessed directly.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Почему setProxy 1 а не setProxy 2
Спасибо, большое. Помогло. Теперь работает как надо - с неверным паролем не пускает.

Я правильно понимаю что 1 - это работать только напрямую, а 2 - это работать только через прокси?
 
Цитата
fjeka написал:
Я правильно понимаю
почти
setProxy Method (ServerXMLHTTP-IServerXMLHTTPRequest)
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Все работает, но если указать неправильный пароль от прокси, то все равно все работает.Получается что данные идут не через прокси, а напрямую.Пробовал подставлять разные объектыCreateObject("WinHttp.WinHttpRequest.5.1")CreateObject("MSXML2.XMLHTTP")Они работают, но только напрямую, если закоментировать строчки с прокси.
Если вы используете мобильные прокси, то возможно, что они не работают должным образом. Возможно, вы указали неправильный пароль от прокси, но данные все равно отправляются напрямую, минуя прокси. Это может быть связано с тем, что мобильные прокси не всегда надежны и могут иметь проблемы с соединением. Если вы хотите использовать прокси, рекомендуется выбирать надежные провайдеры и проверять работу прокси перед использованием
 
Ваше замечание о проблемах с мобильными прокси вполне обосновано. Мобильные прокси могут быть менее стабильными и надежными по сравнению с другими видами прокси-серверов. Так же попробуй купить прокси и попробовать пробиться с разных локаций. Возможны различные проблемы, такие как неправильные настройки, проблемы с соединением или даже ограничения по использованию от провайдера.
Изменено: redicisfollows - 19.01.2024 13:23:46
 
Кто сталкивался с такой проблемой? При таком варианте кода на ПК когда я сижу по проводу, хоть даже из того же роутера то все работает. Как только я переподключаюсь на Wi-Fi, возникает ошибка, на методе .send
Код
Sub CheckProxy()
    With CreateObject("MSXML2.ServerXMLHTTP.6.0")
        .Open "GET", "https://clarity-project.info", False
        .setProxy 2, "77.37.202.134:10187"
        .setProxyCredentials "Login", "Pass" 'логин и пароль ввожу правильные
        .setTimeouts 10000, 10000, 10000, 10000
        .send ("")
        Debug.Print .Status, .statustext
    End With
End Sub
Изменено: Максим Бугриев - 23.01.2024 21:04:22
Страницы: 1
Наверх