2014-09-18 2 views
0

В моем коде я хочу, чтобы отправить запрос HTTP и представить его в стельке - WinHttpReq.SetProxy(2, '127.0.0.1:8888'); если скрипка вверх,попробовать и, кроме ошибки в настройке INNO

если стелька вниз дост esnd это Скрипач, я попытался try..except этим путь :

[Setup] AppName=Test AppVersion=1.5 DefaultDirName={pf}\test 

[Code] 
var 
WinHttpReq: Variant; 
function ShowInFiddler(Param: String): String; 
begin 
try 
WinHttpReq.SetProxy(2, '127.0.0.1:8888'); 
except MsgBox('Hello.', mbInformation, MB_OK); 
end; 
end; 
function InitializeSetup(): Boolean; 
begin 
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1'); 
WinHttpReq.Open('GET', 'http://publishers-xxxx.databssint.com/', false); 
ShowInFiddler (''); 
WinHttpReq.Send(); end; 

но исключение не работает, может ли кто-нибудь помочь?

+0

Почему бы просто не убедиться, что вызов 'SetProxy' ТОЛЬКО в вашей тестовой версии? Таким образом, вы видите это в своем тестировании, но любая версия, которую вы отправляете, не будет иметь ненужной попытки подключиться к локальному прокси. – Deanna

+0

это то, что мы делаем сегодня, это не лучшая практика, так как идеальным является то, что QA одобрит установщик, который мы будем загружать в prod, любой шанс, который вы знаете, почему мой «try and except» здесь не работает? – ElramV

ответ

2

Это не ошибка в Inno Setup, поскольку функция SetProxy не проверяет, доступен ли прокси-сервер. Функция вызовет исключение, если вы вызовете его с неправильными параметрами. Итак, если ваш прокси-сервер выключен, вы должны поймать исключение из функции отправки и, например, используйте настройки прокси-сервера по умолчанию: continue.

Например:

var 
    WinHttpReq: Variant; 

function InitializeSetup(): Boolean; 
begin 
    WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1'); 
    WinHttpReq.Open('GET', 'http://publishers-xxxx.databssint.com/', false); 
    WinHttpReq.SetProxy(2, '127.0.0.1:8888'); 
    try 
    // first try connecting via given proxy 
    WinHttpReq.Send(); 
    except 
    // proxy failed, use default settings 
    WinHttpReq.SetProxy(0); 
    try 
     WinHttpReq.Send(); 
     Result := true; 
    except 
     // conncetion failed, handle error here 
     ShowExceptionMessage(); 
    end; 
    end; 
end; 

Имейте в виду, что отладчик будет приостановлена ​​по умолчанию исключения (прокси-вниз). Это не произойдет во время выполнения. Надеюсь, это поможет.

+0

это сделал! 10x «чужак». Команда MY QA говорит ура! – ElramV

Смежные вопросы