2015-09-24 11 views
7

Czy istnieje limit rozmiaru podczas wysyłania żądań HTTP GET w pliku Node.js? A jeśli tak, jak mogę to zmienić?Node.js HTTP Uzyskaj ograniczenie długości adresu URL

var url = "..." // very long, ~50'000 chars 
http.get(url, function (res) { 
    res.pipe(fs.createWriteStream("file.txt")); 
}); 

Daje mi to:

<html><body><h1>400 Bad request</h1> 
Your browser sent an invalid request. 
</body></html> 

samo przy użyciu wget w PowerShell lub atakujących działa perfekcyjnie.

$url = "..." 
wget -outf file.txt $url 
+0

jaki URL może być> 50K znaków, czy jest to adres URL base64 lub coś takiego, jeśli tak, zobacz: http://stackoverflow.com/questions/20267939/nodejs-write-base64-image-file – RobertPitt

+0

coś w rodzaju api call .. to jest dość duże, wiem ;-) i być może graniczące z obłędem –

Odpowiedz

8

Istnieje wbudowany limit wielkości żądania wymuszany przez węzeł. Żądane nagłówki + URI nie powinny być większe niż 80 kb.

Jako że zdefiniowano here:

/* Maximium header size allowed */ 
#define HTTP_MAX_HEADER_SIZE (80*1024) 

Asuming że UTF-8 postać może mieć od 1 do 4 bajtów, rozmiar łańcucha z 50 000 znaków wynosi od 50 000 do 200 000 bajtów lub z ~ 48kb do 195kb.

Powiązane problemy