Dajte podriadenému procesu QProcess jeho proxy prostredie
Nastavte prostredie odovzdávané jednému podriadenému procesu Qt a zachovajte zdedené hodnoty, ktoré ešte potrebuje.
Pre sťahovač spúšťaný cez QProcess zostavte prostredie podriadeného procesu pred jeho spustením:
auto* download = new QProcess(parent);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("https_proxy", "http://proxy.example:8080");
download->setProcessEnvironment(env);
download->start("curl", {"--head", "https://www.example.com/"});Tento úryvok Qt predpokladá existujúci nadradený objekt, slučku udalostí a curl dostupný pre podriadený proces. Udržujte QProcess živý, kým beží, a v aplikácii ošetrite jeho signály dokončenia a chyby. Pre túto kontrolu verejnej stránky bez nastavených proxy prihlasovacích údajov ponúka zoznam HTTP proxy kandidátske HTTP koncové body pre hodnotu proxy podriadeného procesu.
Spustenie so systemEnvironment zachová zdedené hodnoty, ako je PATH. Zostavenie inak prázdneho prostredia a pridanie jednej proxy premennej by tieto ostatné položky vynechalo.
Kľúčom je názov premennej. export je príkaz shellu, nie je súčasťou tohto kľúča ani spustiteľným súborom, ktorý by QProcess musel najprv spustiť. Priame odovzdanie prostredia sa tiež vyhýba zostavovaniu príkazu shellu okolo URL.
setProcessEnvironment platí pre proces spustený potom. Nemení prostredie už bežiaceho podriadeného procesu ani shellu, ktorý spustil aplikáciu Qt.
Zvolený sťahovač musí premennej rozumieť. Tento príklad používa malými písmenami https_proxy pre HTTPS požiadavku curl a zachováva zdedené vstupy obchádzania. Iný podriadený program môže mať iné proxy rozhranie.