En Node.js , aparte de usar el proceso hijo para hacer una llamada CURL , ¿hay alguna forma de hacer una llamada CURL a la API REST del servidor remoto y obtener los datos de retorno?
También necesito configurar el encabezado de la solicitud para la llamada REST remota , y también consultar la cadena en GET (o POST).
Encuentro este: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs
pero no muestra ninguna manera de POSTAR la cadena de consulta.
Respuestas:
Mirar
http.request
fuente
¿Qué tal usar Request? - Cliente HTTP simplificado .
Editar febrero de 2020: la solicitud ha quedado en desuso, por lo que probablemente ya no deba usarla.
Aquí hay un OBTENER:
OP también quería una POST:
fuente
Mira http://isolasoftware.it/2012/05/28/call-rest-api-with-node-js/
fuente
Uso node-fetch porque usa la API familiar fetch () (si eres un desarrollador web ) . fetch () es la nueva forma de hacer solicitudes HTTP arbitrarias desde el navegador.
Sí, sé que esta es una pregunta de nodo js, pero ¿no queremos reducir la cantidad de desarrolladores de API que deben memorizar y comprender, y mejorar la reutilización de nuestro código JavaScript? Fetch es un estándar ¿qué tal si convergemos en eso?
La otra cosa buena de fetch () es que devuelve una Promesa de JavaScript , por lo que puede escribir código asíncrono como este:
Fetch reemplaza XMLHTTPRequest . Aquí hay más información .
fuente
node-fetch
escritura de las API es que solo funciona con la URL completa y no funcionará con las URL relativas.He estado usando restler para hacer llamadas de servicios web, funciona como encanto y es bastante ordenado.
fuente
Axios
Un ejemplo (axios_example.js) usando Axios en Node.js:
Asegúrese de que en el directorio de su proyecto haga:
Luego puede probar la API REST de Node.js utilizando su navegador en:
http://localhost:5000/search?queryStr=xxxxxxxxx
Del mismo modo, puede publicar, como:
Superagente
Del mismo modo, puede usar SuperAgent.
Y si quieres hacer autenticación básica:
Árbitro:
fuente
Para usar las funciones más recientes de Async / Await
https://www.npmjs.com/package/request-promise-native
//código
fuente
otro ejemplo: debe instalar el módulo de solicitud para ese
fuente
fuente
No encontré ninguno con cURL, así que escribí un contenedor alrededor de node-libcurl y puedo encontrarlo en https://www.npmjs.com/package/vps-rest-client .
Hacer una POST es así:
fuente
Si tiene Node.js 4.4+, eche un vistazo a reqclient , le permite hacer llamadas y registrar las solicitudes en cURL estilo , para que pueda verificar y reproducir fácilmente las llamadas fuera de la aplicación.
Devuelve objetos Promesa en lugar de pasar devoluciones de llamada simples, para que pueda manejar el resultado de una manera más "fashion" , encadenando el resultado fácilmente y manejar los errores de una manera estándar. También elimina muchas configuraciones repetitivas en cada solicitud: URL base, tiempo de espera, formato de tipo de contenido, encabezados predeterminados, parámetros y enlaces de consulta en la URL, y características básicas de caché.
Este es un ejemplo de cómo inicializarlo, hacer una llamada y registrar la operación con estilo curl :
Esto iniciará sesión en la consola ...
Y cuando se devuelve la respuesta ...
Este es un ejemplo de cómo manejar la respuesta con el objeto de promesa:
Por supuesto, se puede instalar con:
npm install reqclient
.fuente
Puede usar curlrequest para configurar fácilmente la hora de la solicitud que desea hacer ... incluso puede configurar encabezados en las opciones para " falsificar " una llamada del navegador.
fuente
Advertencia: a partir del 11 de febrero de 2020, la solicitud está en desuso.
Si implementa con datos de formulario, para obtener más información ( https://tanaikech.github.io/2017/07/27/multipart-post-request-using-node.js ):
fuente
Encontré que el superagente es realmente útil, es muy simple, por ejemplo
fuente