Bir istekte bulunan bir NodeJS proxy'im var, bazı gizleme yapar ve sonra isteği başka bir sunucuya iletir. Son zamanlarda, sahip olmadığımız başka bir vekil tanıtmak için bir değişiklik yapmamız gerekiyordu ve bu vekilin isteğin çift URL olarak kodlanmasına neden olduğu anlaşılıyor. Geçici bir çözüm olarak, gerektiğinde istek gövdesinin kodunu çözmek istiyorum (bu yeni proxy, bazı ortamlarda değil, bazı ortamlarda mevcut olacaktır). Bunu nasıl yapacağım için etrafa baktım ve 'decodeURIComponent' istediğim şey gibi görünüyor, ama kullanmaya çalıştığımda yanlış biçimlendirilmiş bir istisna alıyorum, bu yüzden yanlış kullanıp kullanmadığımı merak ediyorum. veya bu dava için uygun değil.NodeJS'de bir POST isteğinin kodlanması nasıl yapılır
url kod çözme isteği gövdesine çalışılıyor:
decodeDoubleEncodedBuffer = function(buffer) {
var buffString;
if (Buffer.isBuffer(buffer)) {
buffString = buffer.toString();
} else {
buffString = buffer;
}
if (Config.requireURLDecode) {
return new Buffer(decodeURIComponent(buffString));
} else {
return new Buffer(buffString);
}
};
...
body = new Buffer(0)
req.addListener('data', function(chunk) {
return body = Buffer.concat([body, decodeDoubleEncodedBuffer(chunk)]);
});
aşağıdaki hata olsun Bununla:
return new Buffer(decodeURIComponent(buffString));
^
URIError: URI malformed at decodeURIComponent (native)
...
orijinal dinleyici kodu değiştirilen hangi iyi çalışıyor
body = new Buffer(0);
req.addListener('data', function(chunk) {
return body = Buffer.concat([body, Buffer.isBuffer(chunk) ? chunk : new Buffer(chunk)]);
});
Teşekkürler!