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 ਦਾ ਵਾਤਾਵਰਣ ਨਹੀਂ ਬਦਲਦਾ।

ਚੁਣੇ ਗਏ ਡਾਊਨਲੋਡਰ ਨੂੰ ਇਹ ਵੇਰੀਏਬਲ ਸਮਝਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਉਦਾਹਰਣ curl ਦੀ HTTPS ਬੇਨਤੀ ਲਈ ਛੋਟੇ ਅੱਖਰਾਂ ਵਾਲਾ https_proxy ਵਰਤਦੀ ਹੈ ਅਤੇ ਵਿਰਾਸਤੀ ਬਾਈਪਾਸ ਇਨਪੁਟ ਬਚਾਉਂਦੀ ਹੈ। ਕਿਸੇ ਹੋਰ ਸੰਤਾਨ ਪ੍ਰੋਗਰਾਮ ਦਾ ਹੋਰ ਪ੍ਰਾਕਸੀ ਇੰਟਰਫੇਸ ਹੋ ਸਕਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ