चूंकि ऐसा लगता है node-curl
कि मर चुका है, मैंने इसे बदल दिया है, नाम बदल दिया है, और विंडोज के तहत संकलन करने के लिए और अधिक कर्ल की तरह संशोधित किया गया है।
node-libcurl
उपयोग उदाहरण:
var Curl = require( 'node-libcurl' ).Curl;
var curl = new Curl();
curl.setOpt( Curl.option.URL, 'www.google.com' );
curl.setOpt( 'FOLLOWLOCATION', true );
curl.on( 'end', function( statusCode, body, headers ) {
console.info( statusCode );
console.info( '---' );
console.info( body.length );
console.info( '---' );
console.info( headers );
console.info( '---' );
console.info( this.getInfo( Curl.info.TOTAL_TIME ) );
this.close();
});
curl.on( 'error', function( err, curlErrorCode ) {
console.error( err.message );
console.error( '---' );
console.error( curlErrorCode );
this.close();
});
curl.perform();
प्रदर्शन async है, और वर्तमान में इसका उपयोग करने का कोई तरीका नहीं है (और शायद कभी नहीं होगा)।
यह अभी भी अल्फा में है, लेकिन यह जल्द ही बदलने वाला है, और मदद की सराहना की जा रही है।
अब Easy
सिंक अनुरोधों के लिए सीधे हैंडल का उपयोग करना संभव है , उदाहरण:
var Easy = require( 'node-libcurl' ).Easy,
Curl = require( 'node-libcurl' ).Curl,
url = process.argv[2] || 'http://www.google.com',
ret, ch;
ch = new Easy();
ch.setOpt( Curl.option.URL, url );
ch.setOpt( Curl.option.HEADERFUNCTION, function( buf, size, nmemb ) {
console.log( buf );
return size * nmemb;
});
ch.setOpt( Curl.option.WRITEFUNCTION, function( buf, size, nmemb ) {
console.log( arguments );
return size * nmemb;
});
// this call is sync!
ret = ch.perform();
ch.close();
console.log( ret, ret == Curl.code.CURLE_OK, Easy.strError( ret ) );
इसके अलावा, परियोजना अब स्थिर है!
http.request
...