No Node.js , além de usar o processo filho para fazer uma chamada CURL , existe uma maneira de fazer uma chamada CURL para a API REST do servidor remoto e obter os dados de retorno?
Também preciso configurar o cabeçalho da solicitação para a chamada REST remota e também a string de consulta no GET (ou POST).
Acho este: http://blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs
mas não mostra nenhuma maneira de POST string de consulta.
Respostas:
Olhe para
http.request
fonte
Que tal usar solicitação - cliente HTTP simplificado .
Editar fevereiro de 2020: a solicitação foi preterida, portanto você provavelmente não deve mais usá-la.
Aqui está um GET:
A OP também queria um POST:
fonte
Veja http://isolasoftware.it/2012/05/28/call-rest-api-with-node-js/
fonte
Eu uso o node-fetch porque ele usa a API fetch () familiar (se você é um desenvolvedor da web ) . fetch () é a nova maneira de fazer solicitações HTTP arbitrárias do navegador.
Sim, eu sei que essa é uma questão de nó js, mas não queremos reduzir o número de desenvolvedores da API para memorizar e entender e melhorar a reutilização do nosso código javascript? Buscar é um padrão então que tal convergirmos para isso?
A outra coisa interessante sobre fetch () é que ele retorna uma promessa em javascript , para que você possa escrever um código assíncrono como este:
A busca substitui XMLHTTPRequest . Aqui estão mais algumas informações .
fonte
node-fetch
criação de APIs é que apenas funciona URL completo e não funcionará com URLs relativos.Eu tenho usado restler para fazer chamadas de webservices, funciona como charme e é bem legal.
fonte
Axios
Um exemplo (axios_example.js) usando o Axios no Node.js:
Certifique-se de que você faça no diretório do projeto:
Em seguida, você pode testar a API REST do Node.js. usando seu navegador em:
http://localhost:5000/search?queryStr=xxxxxxxxx
Da mesma forma, você pode publicar, como:
SuperAgent
Da mesma forma, você pode usar o SuperAgent.
E se você quiser fazer autenticação básica:
Ref:
fonte
Para usar os recursos mais recentes do Async / Await
https://www.npmjs.com/package/request-promise-native
//código
fonte
outro exemplo - você precisa instalar o módulo de solicitação para esse
fonte
fonte
Não encontrei nenhum com cURL, então escrevi um invólucro node-libcurl e pode ser encontrado em https://www.npmjs.com/package/vps-rest-client .
Para fazer um POST é assim:
fonte
Se você possui o Node.js 4.4 ou superior, consulte reqclient , que permite fazer chamadas e registrar as solicitações em cURL estilo , para que você possa verificar e reproduzir facilmente as chamadas fora do aplicativo.
Retorna objetos Promise , em vez de transmitir retornos de chamada simples, para que você possa lidar com o resultado de uma maneira mais "fashion" , encadeando o resultado facilmente e manipular erros de maneira padrão. Também remove muitas configurações padrão em cada solicitação: URL base, tempo limite, formato do tipo de conteúdo, cabeçalhos padrão, parâmetros e ligação de consulta na URL e recursos básicos de cache.
Este é um exemplo de como inicializá-lo, fazer uma chamada e registrar a operação com o estilo curl :
Isso fará o login no console ...
E quando a resposta é retornada ...
Este é um exemplo de como lidar com a resposta com o objeto de promessa:
Claro, ele pode ser instalado com:
npm install reqclient
.fonte
Você pode usar o curlrequest para definir facilmente o horário da solicitação que deseja fazer ... você pode até definir cabeçalhos nas opções para " falsificar " uma chamada do navegador.
fonte
Aviso: a partir de 11 de fevereiro de 2020, a solicitação foi totalmente descontinuada.
Se você implementar com dados do formulário, para obter mais informações ( https://tanaikech.github.io/2017/07/27/multipart-post-request-using-node.js ):
fonte
Achei superagente muito útil, é muito simples, por exemplo
fonte