दिलचस्प पोस्ट
क्या PHP फ़ंक्शन केस संवेदनशील है? एंड्रॉइड डेवलपमेंट टूल के साथ एक्लिप्स अपडेट करें v। 23 पैडिंग अमान्य है और हटाया नहीं जा सकता? क्या मैं एक 2 डी सरणी को एक संगत 1D सरणी के रूप में इलाज कर सकता हूँ? एंड्रॉइड: डबल-टैप को कैसे पता लगा सकता है? .NET के साथ एक सरणी को यादृच्छिक बनाने का सर्वोत्तम तरीका स्ट्रिंग के शब्दों को पुनरावृति करने का सबसे शानदार तरीका एक ब्लॉब के रूप में छवियों को पुनः प्राप्त करने के लिए jQuery के AJAX विधि का उपयोग करना एंड्रॉइड स्थिर वस्तु जीवनचक्र HTML में "भूमिका" विशेषता का उद्देश्य क्या है? Google-Play-Service लायब्रेरी को इस संदर्भ एंड्रॉइड के पास एक लाल X दिखा रहा है इस गतिविधि में पहले से ही विंडो सजावट द्वारा एक एक्शन बार दिया गया है क्या प्रॉम्प्ट के पीछे काम करने के लिए एनपीएम इंस्टॉल करने का कोई तरीका है? मैं आईई में पृष्ठभूमि-आकार का काम कैसे करूं? हडोप प्रक्रिया रिकॉर्ड ब्लॉक सीमाओं में विभाजित कैसे करता है?

मैं node.js http.Client के साथ एक HTTP प्रॉक्सी का उपयोग कैसे कर सकता हूं?

मैं मानक http.Client का उपयोग कर, node.js से एक आउटगोइंग HTTP कॉल करना चाहता http.Client । लेकिन मैं अपने नेटवर्क से सीधे रिमोट सर्वर तक नहीं पहुंच सकता और प्रॉक्सी के माध्यम से जाने की जरूरत है।

प्रॉक्सी का उपयोग करने के लिए मैं कैसे नोड। Js को बताऊँ?

वेब के समाधान से एकत्रित समाधान "मैं node.js http.Client के साथ एक HTTP प्रॉक्सी का उपयोग कैसे कर सकता हूं?"

टिम मैकफर्लने का उत्तर HTTP प्रॉक्सी का उपयोग करने के संबंध में बहुत ही करीब था

HTTP प्रॉक्सी का उपयोग करना (गैर सुरक्षित अनुरोधों के लिए) बहुत सरल है आप प्रॉक्सी से जुड़ते हैं और आम तौर पर इस अनुरोध को छोड़कर कि पथ भाग में पूर्ण यूआरएल शामिल होता है और मेजबान हेडर उस मेजबान पर सेट होता है जिसे आप कनेक्ट करना चाहते हैं।
टिम अपने जवाब के साथ बहुत करीब थे लेकिन उन्होंने मेजबान शीर्ष लेख को ठीक से सेट करना नहीं छोड़ा

 var http = require("http"); var options = { host: "proxy", port: 8080, path: "http://www.google.com", headers: { Host: "www.google.com" } }; http.get(options, function(res) { console.log(res); res.pipe(process.stdout); }); 

रिकॉर्ड के लिए उसका जवाब http://nodejs.org/ के साथ काम करता है, लेकिन ऐसा इसलिए है क्योंकि उनके सर्वर होस्ट शीर्ष लेख की परवाह नहीं करता है।

आप अनुरोध का उपयोग कर सकते हैं, मैं सिर्फ एक बाहरी "प्रॉक्सी" पैरामीटर के साथ, यह नोड। Js पर प्रॉक्सी का उपयोग करने के लिए अविश्वसनीय रूप से आसान है, और इससे भी अधिक यह एक HTTP प्रॉक्सी के माध्यम से HTTPS का समर्थन करता है।

 var request = require('request'); request({'url':'https://anysite.you.want/sub/sub', 'proxy':'http://yourproxy:8087'}, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body); } }) 

एक बात जो मुझे समझने में थोड़ी देर लग गई, प्रॉक्सी का उपयोग करने के लिए 'http' का उपयोग करें, भले ही आप https सर्वर से प्रॉक्सी की कोशिश कर रहे हों यह मेरे लिए चार्ल्स (ओएसएक्स प्रोटोकॉल विश्लेषक) का प्रयोग करता है:

 var http = require('http'); http.get ({ host: '127.0.0.1', port: 8888, path: 'https://www.google.com/accounts/OAuthGetRequestToken' }, function (response) { console.log (response); }); 

जैसा @Renat यहां पहले ही उल्लेख किया गया है, प्रॉक्सीकृत HTTP ट्रैफिक बहुत सामान्य HTTP अनुरोधों में आता है। मार्ग के रूप में गंतव्य के पूर्ण यूआरएल को पास करते हुए प्रॉक्सी के खिलाफ अनुरोध करें।

 var http = require ('http'); http.get ({ host: 'my.proxy.com', port: 8080, path: 'http://nodejs.org/' }, function (response) { console.log (response); }); 

'अनुरोध' http पैकेज में यह सुविधा है:

https://github.com/mikeal/request

उदाहरण के लिए, 'आर' अनुरोध ऑब्जेक्ट अपने अनुरोधों को एक्सेस करने के लिए localproxy का उपयोग करता है:

 var r = request.defaults({'proxy':'http://localproxy.com'}) http.createServer(function (req, resp) { if (req.url === '/doodle.png') { r.get('http://google.com/doodle.png').pipe(resp) } }) 

दुर्भाग्य से कोई "वैश्विक" डिफ़ॉल्ट नहीं है, जिससे कि libs का उपयोग करने वाले उपयोगकर्ताओं को प्रॉक्सी में संशोधन नहीं किया जा सकता जब तक कि lib विकल्प http विकल्प से नहीं जाते …

एचटीएच, क्रिस

सोचा था कि मैं इस मॉड्यूल को पाया होगा: https://www.npmjs.org/package/global-tunnel , जो मेरे लिए बहुत अच्छा काम करता है (केवल नीचे दिए गए कोड के साथ अपने सभी कोड और तृतीय पक्ष मॉड्यूल के साथ काम किया)

 require('global-tunnel').initialize({ host: '10.0.0.10', port: 8080 }); 

इसे एक बार करें, और आपके आवेदन में सभी http (और https) प्रॉक्सी के माध्यम से चला जाता है

वैकल्पिक रूप से, कॉलिंग

 require('global-tunnel').initialize(); 

http_proxy पर्यावरण चर का उपयोग करेगा

असल में आपको एक स्पष्ट प्रॉक्सी समर्थन की आवश्यकता नहीं है। प्रॉक्सी प्रोटोकॉल बहुत आसान है और सामान्य HTTP प्रोटोकॉल पर आधारित है। HTTP क्लाइंट के साथ कनेक्ट होने पर आपको अपने प्रॉक्सी होस्ट और पोर्ट का उपयोग करना होगा। उदाहरण (नोड.जेएस डॉक्स से):

 var http = require('http'); var google = http.createClient(3128, 'your.proxy.host'); var request = google.request('GET', '/', {'host': 'www.google.com'}); request.end(); ... 

तो मूल रूप से आप अपने प्रॉक्सी से जुड़ते हैं लेकिन "http://www.google.com" के लिए अनुरोध करें

नोड को http_Poxy पर्यावरण चर का उपयोग करने में सहायता करना चाहिए – इसलिए यह क्रॉस प्लेटफॉर्म है और प्रति-अनुप्रयोग कॉन्फ़िगरेशन की आवश्यकता के बजाय सिस्टम सेटिंग पर काम करता है

दिए गए समाधानों का उपयोग करके, मैं निम्नलिखित की सिफारिश करेगा:

Coffeescript

 get_url = (url, response) -> if process.env.http_proxy? match = process.env.http_proxy.match /^(http:\/\/)?([^:\/]+)(:([0-9]+))?/i if match http.get { host: match[2], port: (if match[4]? then match[4] else 80), path: url }, response return http.get url, response 

जावास्क्रिप्ट

 get_url = function(url, response) { var match; if (process.env.http_proxy != null) { match = process.env.http_proxy.match(/^(http:\/\/)?([^:\/]+)(:([0-9]+))?/i); if (match) { http.get({ host: match[2], port: (match[4] != null ? match[4] : 80), path: url }, response); return; } } return http.get(url, response); }; 

उपयोग पद्धति का उपयोग करने के लिए, प्रभावी रूप से केवल http.get को प्रतिस्थापित करें, उदाहरण के लिए, निम्नलिखित test.htm नामक फ़ाइल में Google का अनुक्रमणिका पृष्ठ लिखता है:

 file = fs.createWriteStream path.resolve(__dirname, "test.htm") get_url "http://www.google.com.au/", (response) -> response.pipe file response.on "end", -> console.log "complete" 

यदि आपको अपने प्रॉक्सी प्रदाता के लिए बुनियादी प्रमाणीकरण का उपयोग करने की आवश्यकता है, तो बस निम्नलिखित का उपयोग करें:

 var http = require("http"); var options = { host: FarmerAdapter.PROXY_HOST, port: FarmerAdapter.PROXY_PORT, path: requestedUrl, headers: { 'Proxy-Authorization': 'Basic ' + new Buffer(FarmerAdapter.PROXY_USER + ':' + FarmerAdapter.PROXY_PASS).toString('base64') } }; var request = http.request(options, function(response) { var chunks = []; response.on('data', function(chunk) { chunks.push(chunk); }); response.on('end', function() { console.log('Response', Buffer.concat(chunks).toString()); }); }); request.on('error', function(error) { console.log(error.message); }); request.end(); 

Imskull का जवाब लगभग मेरे लिए काम किया, लेकिन मुझे कुछ बदलाव करना पड़ता था केवल वास्तविक परिवर्तन यूज़रनेम, पासवर्ड, और सेटिंग अस्वीकार करने के लिए अस्वीकृत है। मैं इस पर टिप्पणी नहीं कर सका, इसलिए मैंने इसे एक जवाब में डाल दिया।

यदि आप कोड चलाते हैं तो आपको यह ट्यूटोरियल प्रति हैकर न्यूज पर वर्तमान कहानियों का शीर्षक मिलेगा: http://smalljs.org/package-managers/npm/

 var cheerio = require('cheerio'); var request = require('request'); request({ 'url': 'https://news.ycombinator.com/', 'proxy': 'http://Username:Password@YourProxy:Port/', 'rejectUnauthorized': false }, function(error, response, body) { if (!error && response.statusCode == 200) { if (response.body) { var $ = cheerio.load(response.body); $('td.title a').each(function() { console.log($(this).text()); }); } } else { console.log('Error or status not equal 200.'); } }); 

हो सकता है कि सटीक एक-लाइनर आप के लिए उम्मीद नहीं कर रहे थे लेकिन आप http://github.com/nodejitsu/node-http-proxy पर एक नजर डाल सकते हैं, जिससे कि आप एचटीटीपी के साथ अपने ऐप का उपयोग कैसे कर सकते हैं पर कुछ प्रकाश डाला जा सकता है। क्लाइंट।

http://groups.google.com/group/nodejs/browse_thread/thread/d5aadbcaa00c3f7/12ebf01d7ec415c3?lnk=gst&q=proxy#12ebf01d7ec415c3

इस धागे से उत्तर के आधार पर ऐसा प्रतीत होता है कि आप प्रॉक्सी सर्वर के माध्यम से नोड। जेएस को चलाने के लिए प्रॉक्सीचेंन्स का उपयोग कर सकते हैं:
$ proxychains /path/to/node application.js

निजी तौर पर मैं साइगविन / विंडोज पर्यावरण पर किसी भी प्रोक्सीचेंज़ संस्करण को स्थापित करने में सक्षम नहीं था इसलिए यह परीक्षण नहीं कर सका।

इसके अलावा, उन्होंने कनेक्ट-प्रॉक्सी का उपयोग करने के बारे में भी बात की थी लेकिन मुझे ऐसा करने के बारे में कोई दस्तावेज नहीं मिल पाया।

संक्षेप में, मैं अभी भी फंस गया हूं, लेकिन हो सकता है कि कोई व्यक्ति इस जानकारी का उपयोग उपयुक्त काम खोजने के लिए कर सकता है-आस-पास।

Https के साथ एक प्रॉक्सी का उपयोग करने के लिए मैंने इस वेबसाइट पर सलाह (निर्भरता https-proxy-agent ) का उपयोग करने की कोशिश की और उसने मेरे लिए काम किया:

http://codingmiles.com/node-js-making-https-request-via-proxy/

इस तरह 'https-proxy-agent' का उपयोग करें

 var HttpsProxyAgent = require('https-proxy-agent'); var proxy = process.env.https_proxy || 'other proxy address'; var agent = new HttpsProxyAgent(proxy); options = { //... agent : agent } https.get(options, (res)=>{...});