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 ही शेल आज्ञा आहे, त्या किल्लीचा भाग नाही आणि QProcess ने प्रथम चालवायची अशी कोणतीही अंमलबजावणीय फाइल नाही. पर्यावरण थेट देणे हे URL भोवती शेल आज्ञा तयार करणेही टाळते.

setProcessEnvironment त्यानंतर सुरू होणाऱ्या प्रक्रियेस लागू होते. ते आधीच चालू असलेल्या संततीचे किंवा Qt अनुप्रयोग सुरू करणाऱ्या शेलचे पर्यावरण बदलत नाही.

निवडलेल्या डाउनलोडरला हे चल समजले पाहिजे. हे उदाहरण curl च्या HTTPS विनंतीसाठी लहान अक्षरांचे https_proxy वापरते आणि वारसा मिळालेली बायपास इनपुट जपते. दुसऱ्या संतती कार्यक्रमाचा दुसरा प्रॉक्सी इंटरफेस असू शकतो.

संबंधित लेख