cla/lwp - LWP User Agent
El user agent LWP es una alternativa poderosa y versátil al módulo cla/web,
que es liviano y más simple.
lwp.agent(options)¶
Retorna un nuevo objeto web agent. El objeto web agent es análogo a un navegador
o a un comando curl, en el sentido de que puede usarse para elaborar solicitudes web
complejas.
En este ejemplo, invocamos un webservice REST GET que retorna contenido JSON.
var lwp = require('cla/lwp'); var ua = lwp.agent(); var res = ua.request('GET', 'http://example.com'); print(res.content());
Publicando contenido JSON a un endpoint:
var lwp = require('cla/lwp'); var ua = lwp.agent(); var json = JSON.stringify({ foo: 1234, bar: 'hello' }); var res = ua.request('GET', 'https://jsonplaceholder.typicode.com/todos/1', { content_type: 'application/json', content: json }); print(res.content(), res.code()); var obj = JSON.parse(res.content()); print('UserID' + obj.userId);
Usando autenticación digest:
var lwp = require('cla/lwp'); var ua = lwp.agent(); ua.credentials('server:8080', 'MyRealm', 'myusername', 'mypassword'); var res = ua.request('GET', 'http://some.digest.example.com');
Adjuntando un archivo como POST en un formulario:
var lwp = require("cla/lwp"); var ua = lwp.agent(); var localFile = '/tmp/myfile.tar'; const res = ua.post( 'http://example.com/postfile', 'Content-Type', 'multipart/form-data', 'Content', { file: [localFile] } ); if( res.isSuccess() ) { print("Done!"); }
Descargar un archivo ahora también es posible, y se hace automáticamente por el
módulo cla/lwp enviando la ruta completa al archivo usando la opción toFile
en la solicitud:
var lwp = require("cla/lwp"); var ua = lwp.agent(); const res = ua.request('GET', 'https://file-examples-com.github.io/uploads/2017/02/zip_10MB.zip', { toFile: '/tmp/localzip.zip' } ); if( res.isSuccess() ) { print("Done!"); }
También puede establecer toPath para descargar archivos. En este caso, el nombre del archivo
será extraído de la última parte de la URL y agregado a toPath:
var lwp = require("cla/lwp"); var ua = lwp.agent(); // writes the file /tmp/zip_10MB.zip const res = ua.request('GET', 'https://file-examples-com.github.io/uploads/2017/02/zip_10MB.zip', { toPath: '/tmp' } ); if( res.isSuccess() ) { print("Done!"); }
Más información¶
Para una descripción completa de los métodos disponibles, esta biblioteca imita el LWP::UserAgent de Perl.