Merge branch 'master' of git://github.com/abeaumont/factor
commit
522da6fc0f
|
@ -12,8 +12,6 @@ IN: http.client
|
|||
|
||||
ERROR: too-many-redirects ;
|
||||
|
||||
CONSTANT: max-redirects 10
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: write-request-line ( request -- request )
|
||||
|
@ -79,7 +77,7 @@ SYMBOL: redirects
|
|||
|
||||
:: do-redirect ( quot: ( chunk -- ) response -- response )
|
||||
redirects inc
|
||||
redirects get max-redirects < [
|
||||
redirects get request get redirects>> < [
|
||||
request get clone
|
||||
response "location" header redirect-url
|
||||
response code>> 307 = [ "GET" >>method ] unless
|
||||
|
@ -116,7 +114,8 @@ SYMBOL: redirects
|
|||
with-output-stream*
|
||||
] [
|
||||
in>> [
|
||||
read-response dup redirect? [ t ] [
|
||||
read-response dup redirect?
|
||||
request get redirects>> 0 > and [ t ] [
|
||||
[ nip response set ]
|
||||
[ read-response-body ]
|
||||
[ ]
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel summary debugger io make math.parser
|
||||
prettyprint http.client accessors ;
|
||||
prettyprint http http.client accessors ;
|
||||
IN: http.client.debugger
|
||||
|
||||
M: too-many-redirects summary
|
||||
|
|
|
@ -17,6 +17,7 @@ $nl
|
|||
{ { $slot "header" } { "An assoc of HTTP header values. See " { $link "http.headers" } } }
|
||||
{ { $slot "post-data" } { "See " { $link "http.post-data" } } }
|
||||
{ { $slot "cookies" } { "A sequence of HTTP cookies. See " { $link "http.cookies" } } }
|
||||
{ { $slot "redirects" } { "Number of redirects to attempt before throwing an error. Default is " { $snippet "max-redirects" } " ." } }
|
||||
} } ;
|
||||
|
||||
HELP: <response>
|
||||
|
|
|
@ -10,6 +10,8 @@ http.parsers
|
|||
base64 ;
|
||||
IN: http
|
||||
|
||||
CONSTANT: max-redirects 10
|
||||
|
||||
: (read-header) ( -- alist )
|
||||
[ read-crlf dup f like ] [ parse-header-line ] produce nip ;
|
||||
|
||||
|
@ -137,7 +139,8 @@ url
|
|||
version
|
||||
header
|
||||
post-data
|
||||
cookies ;
|
||||
cookies
|
||||
redirects ;
|
||||
|
||||
: set-header ( request/response value key -- request/response )
|
||||
pick header>> set-at ;
|
||||
|
@ -154,7 +157,8 @@ cookies ;
|
|||
H{ } clone >>header
|
||||
V{ } clone >>cookies
|
||||
"close" "connection" set-header
|
||||
"Factor http.client" "user-agent" set-header ;
|
||||
"Factor http.client" "user-agent" set-header
|
||||
max-redirects >>redirects ;
|
||||
|
||||
: header ( request/response key -- value )
|
||||
swap header>> at ;
|
||||
|
|
Loading…
Reference in New Issue