Puisque cela ressemble à node-curl
est mort, je l'ai bifurqué, renommé, et modifié pour qu'il soit plus proche de curl et compile sous Windows.
node-libcurl
Exemple d'utilisation :
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();
Perform est asynchrone, et il n'y a aucun moyen de l'utiliser de manière synchrone actuellement (et il n'y en aura probablement jamais).
Il est encore en phase alpha, mais cela va bientôt changer, et toute aide est appréciée.
Il est maintenant possible d'utiliser Easy
gérer directement les demandes de synchronisation, par exemple :
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 ) );
De plus, le projet est maintenant stable !
14 votes
http.request
...0 votes
Le problème de toutes ces solutions est qu'elles nécessitent le contrôle des cors !