QProcess सन्तानलाई यसको प्रोक्सी वातावरण दिनुहोस्
एउटा Qt सन्तानलाई दिइने वातावरण सेट गर्नुहोस् र यसलाई अझै चाहिने वंशानुगत मानहरू कायम राख्नुहोस्।
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 प्रयोग गर्छ र वंशानुगत बाइपास इनपुट जोगाउँछ। अर्को सन्तान कार्यक्रमको अर्को प्रोक्सी इन्टरफेस हुन सक्छ।