NodeJs request.get() function not working while the url is accessible from the browser

核能气质少年 提交于 2021-01-28 06:13:25

问题


I am using the request npm module.I want to retrieve an image from a url. The request.get(url) function is returning me a '400 Bad Request', whereas the image is accessible from the browser.

The url i am hitting is : http://indiatribune.com/wp-content/uploads/2017/09/health.jpg


回答1:


You could try to add some headers:

const request = require('request');
request.get({
    url: 'http://indiatribune.com/wp-content/uploads/2017/09/health.jpg',
    headers: {

        Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'en-GB,en;q=0.8,en-US;q=0.6,hu;q=0.4',
        'Cache-Control': 'max-age=0',
        Connection: 'keep-alive',
        Host: 'indiatribune.com',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',

    },
}, (err, response, data) => {
    console.log(response, data);
});

The User-Agent seems to be enough.




回答2:


Use download module . It's pretty simple.

const fs = require('fs');
const download = require('download');

download('http://indiatribune.com/wp-content/uploads/2017/09/health.jpg').pipe(fs.createWriteStream('foo.jpg'));


来源:https://stackoverflow.com/questions/46402099/nodejs-request-get-function-not-working-while-the-url-is-accessible-from-the-b

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!