-
-
> превращающий его в браузерах
кто сказал? али ты TIdHTTP браузером считаешь? можешь с таким же успехом слезно вопрошать "как вернуть код PHP, а то негодяйский браузер его в полноценный html превращает"....
-
Володь, почему ты думаешь, что браузер превращает его в HTML? Я думаю, что это на серверной стороне делается. Тады никак не вытащить.
-
Если ты откроешь ссылку, и посмотришь исходный код, то увидишь XML (в Мозилле по крайней мере) Вот то, что должно быть по тому адресу: <?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/_layout/guild/roster.xsl"?><page globalSearch="1" lang="ru_ru" requestUrl="/guild-info.xml">
<tabInfo subTab="guildRoster" tab="guild" tabGroup="guild" tabUrl="r=%D0%AF%D1%81%D0%B5%D0%BD%D0%B5%D0%B2%D1%8B%D0%B9+%D0%BB%D0%B5%D1%81&gn=%D0%AE%D0%BD%D0%B8%D1%82%D0%B8"/>
<guildInfo> А вот что получаю я, из кода IdHTTPconnect.Get(Address, AStream);
Memo1.Lines.Add(AStream.DataString); '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">'#$A'<html>'#$A'<head>'#$A'<link href=\"/favicon.ico\" rel=\"shortcut icon\">'#$A'<link href=\"/_content/en_us/searchplugin.xml\" rel=\"search\" title=\"The World of Warcraft Armory\" type=\"application/opensearchdescription+xml\">'#$A'<title>The World of Warcraft Armory - Юнити @ Ясеневый лес - Guild Roster</title>'#$A'<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
-
Так же, если ссылку "Сохранить объект как" - вы увидите именно XML Я же упорно получаю HTML :-( Может, надо как-то по другому скачивать?
-
Попытка cказать серверу, что мне нужен именно xml IdHTTPconnect.Request.Accept := 'text/xml'; не удалась :-(
-
никакого xml для браузера там нет. трансформация делается на серверной стороне. если бы там был xml со ссылкой на xls то идшттп стянул бы его аз-из.
-
тогда почему браузер показывает как исходный код именно XML? И потом, трансформацию делает именно браузер. XML + XSL с жесткого диска превращает в HTML не жесткий диск, а браузер.
-
Если ты откроешь ссылку, и посмотришь исходный код, то увидишь XML (в Мозилле по крайней мере)
Если открыть ссылку в мозилле, то прежде чем ты увидишь xml, ты там еще увидишь полтора килограмма скриптов, которые и тянут твой хмл с сервера. Но совершенно по другой ссылке разумеется.
-
> трансформация делается на серверной стороне. нет, получается именно xml, тот самый, что в мазиле в исходном коде. с заголовком и ссылкой на "трансформатор" - <?xml-stylesheet type="text/xsl" href="/_layout/guild/roster.xsl"?> в котором ссылки на следующие <xsl:import href="/_layout/includes.xsl"/> <xsl:import href="/_layout/guild/header.xsl"/> <xsl:output method="html" ... и т.д. целая куча файлов и скриптов.
и это можно проверить, закачав через TIdHTTP, который само собой не дает трансформированный html, а исходный xml, сначала... чтобы продолжить придется вставлять ссылки. (почему у автора сразу html хз.)
> то прежде чем ты увидишь xml первым, а не прежде чем, качается именно xml.
-
кстати, как понял это не совсем "веб страничка", скорее "веб приложение", поэтому так и сделано, скачиваются данные, а страничка строится на клиенте в зависимости от параметров разная. и поэтому же постоянно идут ответы от сервера 304 вместо 200 (типа эти данные не менялись), т.е. раз скачал все, а после только заголовками обмен, а данные при видимости разных страниц/динамических/с взаимодействием с пользователем не перезакачиваются, берутся из кеша. "симпатичное" решение надо сказать, при первом впечатлении как о "громоздком".
-
-
А что за компонент TXMLHTTP? Я использую TIdHTTP (Rev 1.65)
-
какая разница. ни тот ни другой ничего кроме вынимания контента не делает.
-
А TIdHTTP ты пробовал?
-
> А TIdHTTP ты пробовал? я пробовал. читай [9], все что там есть получено из него "пошагово".
-
А TIdHTTP ты пробовал?
Я его не пробовал только потому что лень настраивать работу через прокси.
PS idHTTP такой же "тупой", как и любой другой транспорт. Никаких трансформаций xml он сам по себе не делает, даже если в документе указана ссылка на xsl
-
> Медвежонок Пятачок © (20.09.10 10:07) [11]
Можно таки узнать, что это за компонет такой, TXMLHTTP?
-
> что это за компонет такой, TXMLHTTP? это "обертка" ActivX обьекта используемого IE для обратной связи с клиента (Ajax). если бы писал на яваскрипт знал бы.
-
uses MSXML2_TLB;
CoXMLHTTP = class class function Create: IXMLHTTPRequest; class function CreateRemote(const MachineName: string): IXMLHTTPRequest; end;
Вообще, чтобы получить IXMLHTTPRequest правильнее было вызывать CoXMLHTTP.Create();
Но можно и так как у меня выше написано.
|