starałem się GET
do danych binarnych za pomocą request
i miał coś takiego:Pierwsze zawartości binarnej w node.js użyciu żądania
var requestSettings = {
method: 'GET',
url: url,
};
request(requestSettings, function(error, response, body) {
// Use body as a binary Buffer
}
Ale body
było zawsze kilka bajtów różni się od oczekiwano. Po dalszych badaniach dowiedziałem się, że request
zakłada body
jest ciągiem znaków i zastępuje wszystkie bajty inne niż Unicode.
Próbowałem dodać
encoding: 'binary'
do requestSettings
ale to nie pomogło.
Jak mogę uzyskać dane binarne?
Działa doskonale, dzięki. Jest to jednak całkowicie nieintuicyjne ze względu na moduł żądania. –
Co za absurdalny koszmar. Zajęło mi to 12 godzin, aby to polować. Wygląda na to, że moduł żądania węzła domyślnie traktuje przychodzące dane w treści odpowiedzi jako UTF-8 i automatycznie konwertuje wszystkie sekwencje bajtów innych niż UTF-8 na niepotrzebne (ale poprawne znaki UTF-8). Żadna ilość ustawienia typu "mimetype" itp. Nie działa (nie ma to miejsca w przypadku danych * odpowiedzi *). "Kodowanie: null" jest jedyną opcją, która działa, i - bardzo słabo udokumentowana. Powinno być oczywiste ostrzeżenie w węźle Poproś o dokumentację, jak odzyskać czyste dane binarne. Dzięki! –
@DanNissenbaum samo doświadczenie tutaj po prostu niesamowite – Novellizator