gpt4 book ai didi

node.js - http.get 带空格的 url

转载 作者:搜寻专家 更新时间:2023-10-31 22:30:20 24 4
gpt4 key购买 nike

尝试使用 node js 和图像下载器。我偶然发现了 url 和 http.get 的问题,如果 url 在查询中包含空格,我就会失败。我设法通过自己转义 url 路径来解决这个问题。如果我使用 url.parse() 路径变量将在第一个空格处被截断。我的解决方案有效,但我想知道是否有更好的解决方案。

function downloadFileFromURL( file_url, callback ) 
{
//-------------
// really complicated way to get a http.get save path
var protocol = url.parse( file_url).protocol;
var host = url.parse( file_url ).host;
var full_domain = protocol + '//' + host;
var escaped_path = escape(file_url.substring( full_domain.length ));

var options = {
host: host
, port: 80
, path: escaped_path
}

var file_url_info = url.parse( file_url );
var file_path = path.join( __dirname, 'images', path.basename(file_url) );

var request = http.get( options , function(res){

var imagedata = ''
res.setEncoding('binary')

res.on('data', function(chunk){
imagedata += chunk;
})

res.on('end', function(){

fs.writeFile( file_path, imagedata, 'binary', function(err){
if (err) callback( err );
else {
callback( null, file_path );
}
})
})

})
}

最佳答案

尝试通过 encodeURI 运行它.

var encoded_url = encodeURI(file_url);

关于node.js - http.get 带空格的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com