За преземач што се стартува преку QProcess, изградете ја околината на детето пред да го стартувате:

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/"});

Овој Qt фрагмент претпоставува постоечки родителски објект, јамка за настани и curl достапен на детето. Држете го QProcess жив додека работи и обработувајте ги неговите сигнали за завршување и грешка во апликацијата. За оваа проверка на јавна страница без поставени прокси акредитиви, листата со HTTP прокси-сервери нуди кандидат HTTP крајни точки за вредноста на проксито на детето.

Почнувањето со systemEnvironment ги зачувува наследените вредности како PATH. Изградбата на инаку празна околина и додавањето една прокси променлива би ги испуштило тие други записи.

Името на променливата е клучот. export е наредба на shell, не е дел од тој клуч и не е извршна програма што QProcess треба прво да ја стартува. Предавањето на околината директно исто така избегнува градење на shell наредба околу URL-то.

setProcessEnvironment се однесува на процесот што се стартува потоа. Тоа не ја менува околината на веќе работечко дете или на shell-от што ја стартувал Qt апликацијата.

Избраниот преземач мора да ја разбере променливата. Овој пример користи мали букви https_proxy за HTTPS барањето на curl и ги зачувува наследените влезни податоци за заобиколување. Друга детска програма може да има друго прокси интерфејс.

Поврзани статии