MSXML2.ServerXMLHTTP с использованием классического ASP возвращает битые изображения

Я не использовал MSXML2.ServerXMLHTTP много лет, и теперь мне нужно. Когда я использую MSXML2.ServerXMLHTTP для захвата страницы, страница возвращается с битыми изображениями. Я помню, как делал это раньше, была строка кода, которую я использовал, и изображения разрешались идеально. Это было похоже на установку базового URL-адреса. Кто-нибудь знает, какой будет код? Вот код, который я использую:

url = "notimportant.com"

Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
    objXML.Open "GET", URL, False
    objXML.Send()
    xmlResponse = objXML.responseText
Set objXML = Nothing

person Damien    schedule 08.06.2016    source источник
comment
Как у вас получаются изображения. Если xmlResponse содержит img теги, вам нужно посмотреть в исходный код и выяснить, что с ними не так. NB Я рекомендую использовать Server.CreateObject("MSXML2.ServerXMLHTTP.6.0") - он вызывает самую последнюю версию MSXML   -  person John    schedule 08.06.2016


Ответы (1)


Вероятно, вы захотите поместить тег <base> внутри <head>, чтобы одна строка кода была следующей:

xmlResponse = Replace(objXML.responseText, "<head>", "<head><base href=""http://notimportant.com/"" />", 1, 1, vbTextCompare)

Или, как более надежный способ в случае, если тег заголовка более сложный и непредсказуемый, например <head class="head etc">, вы можете использовать регулярные выражения для замены:

Dim Re
Set Re = New RegExp
    Re.IgnoreCase = True
    Re.Pattern = "<head[^>]*>"

xmlResponse = Re.Replace(objXML.responseText, "$&<base href=""http://notimportant.com/"" />")
person Kul-Tigin    schedule 09.06.2016