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 ఒక shell ఆదేశం, అది ఆ కీలో భాగం కాదు మరియు QProcess మొదట అమలు చేయాల్సిన ఎగ్జిక్యూటబుల్ కూడా కాదు. వాతావరణాన్ని నేరుగా ఇవ్వడం URL చుట్టూ shell ఆదేశాన్ని నిర్మించడాన్ని కూడా నివారిస్తుంది.
setProcessEnvironment ఆ తర్వాత ప్రారంభమయ్యే ప్రక్రియకు వర్తిస్తుంది. ఇప్పటికే నడుస్తున్న సంతానం లేదా Qt అనువర్తనాన్ని ప్రారంభించిన shell యొక్క వాతావరణాన్ని ఇది మార్చదు.
ఎంచుకున్న డౌన్లోడర్ ఈ చరాన్ని అర్థం చేసుకోవాలి. ఈ ఉదాహరణ curl యొక్క HTTPS అభ్యర్థన కోసం చిన్న అక్షరాల https_proxy ను ఉపయోగిస్తుంది మరియు వారసత్వ బైపాస్ ఇన్పుట్లను కాపాడుతుంది. మరో సంతాన ప్రోగ్రామ్కు మరో ప్రాక్సీ ఇంటర్ఫేస్ ఉండవచ్చు.