Скачать файл по внутренней ссылке

Петр
Дата: 30.07.2019 12:12:21
Для понимания, что нужно опишу общий процесс:
Использую класс TInternetExplorer из модуля SHDocVw для отображения браузера внутри своего приложения.
Через браузер пользователь вручную авторизируется в стороннем web приложении, заходит на нужную страницу. Я через TInternetExplorer получаю код html страницы для парсинга в том числе и внутреннюю ссылку на файл.
Если я подставляю эту ссылку на файл в адрес TInternetExplorer то этот файл можно скачать, но с появлением окна Intenet Explorer-a (скачать / открыть).
Задача как скачать этот файл без дополнительных popup окон и в нужное место?
Если использовать TIdHTTP, то как мне передать в него параметры текущей сессии InternetExplorer?
Прошу помощи, использую delphi 7.
wadman
Дата: 30.07.2019 12:39:56
Петр
Если использовать TIdHTTP, то как мне передать в него параметры текущей сессии InternetExplorer?

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

Вроде в каких-то его событиях передается заголовок (header) перед запросом.
Петр
Дата: 30.07.2019 15:22:38
wadman
мы можем переговорить в скайпе, icq или вотсапе?
_Vasilisk_
Дата: 30.07.2019 15:52:55
wadman
Подсмотреть заголовок, который передается эксплоером при скачивании и сэмулировать его.
Если там ни какой-нибудь обфусцированный JS
wadman
Дата: 30.07.2019 15:54:24
Петр
мы можем переговорить в скайпе, icq или вотсапе?

Не получится. Проще и быстрее под отладчиком посмотреть в событие что-то вроде before navigate.
Петр
Дата: 30.07.2019 16:24:18
там все в принципе читаемо, но как это использовать?
причем DNSID - это как раз тот параметр который отвечает за "ID" открытой сессии
<a href="/?DNSID=wmHNWwDwGKCmghbEqDB6G_Q">

но он в теге <body>

вот верхняя часть html

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ru" class=" modern">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=windows-1251">
    <meta name="msapplication-config" content="none"/>
    <meta name="viewport" content="width=1280">
    <title>35502-2019</title>
        <link rel="stylesheet" type="text/css" href="/design/css/map.php?10.1-ps0849"/>

    <link rel="icon" type="image/png" href="/design/custom/rospotrebnadzor/favicon.png ">
            <link rel="stylesheet" href="/design/css/user/modern_said.css">
    
    <script type="text/javascript">
        
        var ORG = {'id':32039,'parent_id':2,'name':'xxxx','ordi':0,'short_name':'xxxx','address':'xxxx','phone':'+7(495)687-40-35','fax':'','native_id':0,'super_short_name':'xxxx','always_letter':0,'cdate':'2017-10-09 10:17:08','cuser_id':73803,'edate':'2019-02-07 16:17:40','euser_id':425908,'fmin':0,'global_id':'00270000032039','owner':3,'w_name':'','g_mtime':'2019-02-07 16:17:40','medo_uid':'','medo_email':'','is_migration':0,'postalcode':129626,'is_category':0,'use_medo_notification':0,'medo_features':'','preferable_delivery_type':0,'lotus_unid':'','superior_org_id':'','tax_number':777,'is_egrul':0,'type_name':'стандартная','dadata_uid':'602726d8e3a3efccfe687740d85a3619d33dc94ddb497594bc768c6dd6021765'};
                var municipalAddress = false;
    </script>

        <script type="text/javascript" src="/js/map.php?10.1-ps0876"></script>

    <script>
        var eventPopTimeout = setTimeout(_popper, 2000);
        var eventPushTimeout = setTimeout(_pusher, 1500);
    </script>
    <script type="text/javascript" src="/js/qrCodeScanner.js"></script>
</head>
<body  class="">
	<div class="body-content">
		<div class="s-header">
	<div class="s-header__h">
		<div class="s-app-logo">
			<a href="/?DNSID=wmHNWwDwGKCmghbEqDB6G_Q">
				<table>
    <tr>
        <td class="lenobl-logo logo-td">
            <svg width="45" height="45">
                <image xlink:href="/design/custom/rsp/logo-modern-lefttop.svg" width="45" height="45"/>
            </svg>
        </td>
        <td>
            <div class="s-app-logo-text lenobl-logo-text"><b>XXX</b></div>
        </td>
    </tr>
</table>			</a>
		</div>
		<div class="s-app-text">
			<div class="s-app-text__line">
				<span>Техническая поддержка:  999</span><span>, пн-пт с 8.00 до 20.00</span>				<div class="s-app-text__logout">
					Добрый вечер, Иванова М.Г
					(<a href="/logout.php?DNSID=wmHNWwDwGKCmghbEqDB6G_Q">выйти</a>)
                    				</div>
			</div>
			<div class="s-app-text__line">
				<a href="/news.php?DNSID=wmHNWwDwGKCmghbEqDB6G_Q">Помощь</a><b> | </b><span>Адрес технической поддержки: </span><a href="mailto:mskdoc@tr.ru">mskdoc@tr.ru</a>			</div>
		</div>
								<div class="s-app-upload" data-userpic="/userpic/425832.jpg">
	      	      					<span title="Добавить фото" class="s-ava-upload">
						<span class="s-ava-upload__title">Добавить</span>
						<img src="/images/spacer.gif" width="50" height="50">
					</span>
	      		</div>
	</div>
</div>

<div id="spin-loading" style="display: none; width: 140px; height: 140px; position: fixed; top: 50%; left: 50%; margin-left: -70px; margin-top: -70px; z-index: 2000;"></div>

<script>
***
DarkMaster
Дата: 30.07.2019 17:04:28
Петр,

А если сразу на получаемую тобой ссылку натравить UrlDownloadToFile() - он скачивается?
Петр
Дата: 30.07.2019 17:17:32
DarkMaster
Петр,

А если сразу на получаемую тобой ссылку натравить UrlDownloadToFile() - он скачивается?


нет - отказ в авторизации
ziv-2014
Дата: 30.07.2019 19:01:03
Петр, Поставь fiddler и посмотри на заголовки и куки.
Петр
Дата: 30.07.2019 19:36:43
ziv-2014
Петр, Поставь fiddler и посмотри на заголовки и куки.

Поставил,
заголовки:

CONNECT <url>:443 HTTP/1.0
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
Host: <url>
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Pragma: no-cache

куки:
This request did not send any cookie data.