2015-04-16 22 views
5

Korzystając z R3, muszę uzyskać zlokalizowaną wersję strony ze strony internetowej, która używa plików cookie do obsługi tego.Jak przekazać adres URL do pliku cookie za pomocą Rebol 3?

page: http://www.rci.com/resort-directory/resortDetails?resortCode=0450   
read/custom page [header [Cookie: "USER_LOCALE=fr_FR"]] 

oparciu o pobieżne docs dla R3, byłbym w stanie zrobić cośtakiego::

result: write page [GET [Cookie: "USER_LOCALE"] {fr_FR}] 

Ktoś ma jakieś pomysły w REBOL 2.x, mogę to zrobić? Metoda R2 działała dobrze, ale ponieważ R2 nie radzi sobie z UTF-8 wymaganym w wielu językach obcych, niewiele mi tu jest.

** Aktualizacja **

roztworu (po przeliczeniu) z R2 w naszym przykładzie wynosi:

  1. Montaż wymaganych parametrów w cookies:

    cookie-str: "USER_LOCALE=fr_FR; USER_COUNTRY=US" 
    
  2. Następnie wprowadź plik cookie do nagłówka:

    page-code: read/custom page reduce compose/deep ['header [Cookie: (cookie-str)]] 
    

Rozwiązaniem dla mojego przykład w R3 jest:

page-code: to-string write page reduce compose/deep ['GET [Cookie: (cookie-str)]] 

Odpowiedz

6

Twój try to prawie tam. Używasz WRITE z małym "dialektem HTTP" w bloku argumentów, kiedy potrzebujesz skonfigurować coś na temat wysyłanego żądania HTTP. Pierwszą pozycją tego dialektu jest metoda HTTP, druga (jeśli jest obecna) to blok nagłówków HTTP do przesłania.

Jeśli dobrze zrozumiałem Twój przykład, chcesz wysłać plik cookie z "USER_LOCALE = fr_FR" jako ładunek. Więc chcesz zrobić: test

write page [GET [Cookie: {USER_LOCALE=fr_FR}]] 

zróbmy to przed httpbin:

>> print to-string write http://httpbin.org/headers [GET [Cookie: "USER_LOCALE=fr_FR"]]  
{ 
    "headers": { 
    "Accept": "*/*", 
    "Accept-Charset": "utf-8", 
    "Cookie": "USER_LOCALE=fr_FR", 
    "Host": "httpbin.org", 
    "User-Agent": "REBOL" 
    } 
} 
+0

Dziękuję za wskazówki. Początkowo twój kod nie działałby dla mnie. Dzieje się tak, ponieważ wymagany jest inny plik cookie, który zawiera lokalizację geograficzną. Przykładowym przykładem kodu jest: kod strony: do napisania strony [GET [Cookie: "USER_LOCALE = fr_FR; USER_COUNTRY = US"]] – Edoc