Друзья, добрый день! Пытаюсь получить html-код страницы корпоративного портала (помогающие не смогут на него зайти). Если я просто вставляю ссылку в любой из браузеров на рабочем ПК - она открывается. Если через любой из найденных мною кодов в интернете - выдает либо "", либо "401 UNAUTHORIZED" вместо html-кода в Immediate. Как можно обойти такой момент?
Спасибо.
Код
Function GetResponse(ByVal URL$) As String
On Error Resume Next: Err.Clear
Static xmlhttp As WinHttpRequest
If xmlhttp Is Nothing Then Set xmlhttp = New WinHttpRequest
xmlhttp.Open "GET", URL$, True: DoEvents
xmlhttp.send: DoEvents
If Not xmlhttp.WaitForResponse(timeout&) Then
Debug.Print "timeout", URL: Exit Function
End If
GetResponse = xmlhttp.responseText
End Function
Sub test() ' пример использования
On Error Resume Next
txt = GetResponse("http://******.******.ru/_layouts/listform.aspx?PageType=4&ListId={C1A84F4D-04EC-499A-8C4D-69D319B5316C}&ID=27/")
Debug.Print Len(txt) ' возвращает длину текста: 62737 символов
End Sub
Private Function GetHTTPResponse(ByVal sURL As String) As String
Dim oXMLHTTP
On Error Resume Next
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
.Open "GET", sURL, False
.SetRequestHeader "Cache-Control", "max-age=0"
.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.41 Safari/537.36 OPR/35.0.2066.10 (Edition beta)"
.SetRequestHeader "Accept-Encoding", "deflate"
.SetRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"
.send
GetHTTPResponse = .responseText
End With
Set oXMLHTTP = Nothing
End Function
Откройте эту саму страницу в браузере Internet Explorer (именно в нём, а не в Edge) Наверняка там нужно будет авторизоваться, — сделайте это А потом используйте функцию от nilske (только без строки .SetRequestHeader "Accept-Encoding", "deflate") Там, в отличие от вашего кода с WinHttpRequest, используется MSXML2.XMLHTTP, который подхватит авторизацию из браузера Internet Explorer
А как же вот с этим быть: Сервисы Microsoft 365 перестали поддерживать браузер Internet Explorer Начиная с 17 августа 2021года, устаревший браузер постепенно будет недоступен в сервисе Microsoft 365. Пользователям предложат использовать другую программу для работы в интернете. Для уведомления потребителей в приложениях облачного сервиса появятся баннеры, призывающие прекратить использование Internet Explorer. Отказ от популярной программы объясняют тем, что IE не является актуальным браузером и что он несовместим с новыми цифровыми продуктами компании. Полная поддержка Internet Explorer во всех версиях операционной системы Windows будет прекращена 15 июня 2022 года.
doober, Run-time error '-2147024891 (80070005)' Отказано в доступе
Гугл только такое выдает, но там решение связанное с настройками Defender'а, которые мне не изменить на рабочем ПК.(есть еще выдача, не так вбил в поиск, почитаю тоже сейчас) Что-то можно еще попробовать?