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-ը պետք է նախ գործարկի։ Միջավայրն ուղղակիորեն փոխանցելը նաև խուսափում է URL-ի շուրջ shell հրաման կառուցելուց։

setProcessEnvironment-ը կիրառվում է դրանից հետո գործարկվող պրոցեսի վրա։ Այն չի փոխում արդեն աշխատող զավակի կամ Qt ծրագիրը գործարկած shell-ի միջավայրը։

Ընտրված ներբեռնիչը պետք է հասկանա փոփոխականը։ Այս օրինակը օգտագործում է փոքրատառ https_proxy curl-ի HTTPS հարցման համար և պահպանում է ժառանգված շրջանցման մուտքերը։ Մեկ այլ զավակ ծրագիր կարող է ունենալ այլ պրոքսի միջերես։

Առնչվող հոդվածներ