2013-08-27 27 views
9

Widziałem, jak złożyć wniosek za pomocą jednego pliku cookie, i widziałem, jak napisać odpowiedź z wieloma plikami cookie, ale czy ktoś wie, jak napisać request w node.js przy użyciu modułu http (jeśli to możliwe) z wieloma nagłówkami "Cookie"?Wiele nagłówków "Cookie" w żądaniu node.js

Do tej pory jedynym sposobem, w jaki widziałem, aby wykonać żądanie w węźle node.js, było przekazanie obiektu jako parametru do funkcji, co wymagałoby dwóch identycznych kluczy.

headers = { 
    Cookie: firstCookie, 
    Cookie: secondCookie 
} 

więc nie zadziała.

To jest pytanie node.js, ale nie jestem zbyt pewny siebie z http, więc nie jestem pewien, czy nie ma sposobu na ustawienie dwóch odrębnych plików cookie w nagłówku. Czy możliwe jest połączenie dwóch w jeden nagłówek? Czy żądanie z dwoma osobno zdefiniowanymi plikami cookie różni się od jednego z jednym nagłówkiem zawierającym oba?

+0

to API do pisania nagłówków odpowiedzi nie wymagać nagłówków – twinlakes

Odpowiedz

11

Dodana właściwość "Cookie" jest bezpośrednim nagłówkiem w żądaniu HTTP. Należy używać tylko jeden nagłówek „Cookie” i kodować pliki cookie właściwie do jednego ważnego ciąg nagłówka cookie tak:

var headers = { 
    Cookie: 'key1=value1; key2=value2' 
} 

Ponadto, zamiast korzystać nodeJS natywnego klienta HTTP, który zwykle pozwoli Ci napisać wiele boilerplate Kod, polecam Ci użyć znacznie uproszczony bibliotekę jak Requestify ..

w ten sposób można wykonać żądania HTTP z użyciem ciasteczek requestify:

var requestify = require('requestify'); 

requestify.get('http://example.com/api/resource', { 
    cookies: { 
     'key1': 'val1', 
     'key2': 'val2',  
    } 
}) 
    .then(function(response) { 
     // Get the response body (JSON parsed or jQuery object for XMLs) 
     response.getBody(); 
    } 
); 
+0

Żądaj dźwięków takich jak to, czego szukam, ale moje projekty zostały już napisane z http, więc użyłem twojej pierwszej odpowiedzi. Dzięki – twinlakes

+0

Cieszę się, że mogę pomóc (-: – ranm8

-3

Zamiast używać natywnej biblioteki Node.js, można użyć child_process.exec, aby uruchomić proces zwijania i uzyskać standardowe wyjście w zamian za wykonanie dowolnego żądania.

+5

Woah. Okropny pomysł, ponieważ źle się skaluje. –

Powiązane problemy