From 0cc4dc4e0a492526183b48b1e12bfd49721f4df8 Mon Sep 17 00:00:00 2001 From: Philipp Winkler Date: Wed, 10 Dec 2008 21:30:33 -0800 Subject: [PATCH] Allow post data to be send on PUT as well as POST actions. Allow any message between 200 and 299 to mean success. --- basis/http/client/client.factor | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/basis/http/client/client.factor b/basis/http/client/client.factor index 119fa23567..108ae5ecc4 100644 --- a/basis/http/client/client.factor +++ b/basis/http/client/client.factor @@ -7,6 +7,7 @@ math.order hashtables byte-arrays destructors io.encodings io.encodings.string io.encodings.ascii +io.encodings.utf8 io.encodings.8-bit io.encodings.binary io.streams.duplex @@ -40,11 +41,11 @@ GENERIC: >post-data ( object -- post-data ) M: post-data >post-data ; -M: string >post-data "application/octet-stream" ; +M: string >post-data utf8 encode "application/octet-stream" ; M: byte-array >post-data "application/octet-stream" ; -M: assoc >post-data assoc>query "application/x-www-form-urlencoded" ; +M: assoc >post-data assoc>query ascii encode "application/x-www-form-urlencoded" ; M: f >post-data ; @@ -52,12 +53,13 @@ M: f >post-data ; [ >post-data ] change-post-data ; : write-post-data ( request -- request ) - dup method>> "POST" = [ dup post-data>> raw>> write ] when ; + dup method>> [ "POST" = ] [ "PUT" = ] bi or [ dup post-data>> raw>> write ] when ; : write-request ( request -- ) unparse-post-data write-request-line write-request-header + binary encode-output write-post-data flush drop ; @@ -153,7 +155,7 @@ SYMBOL: redirects PRIVATE> -: success? ( code -- ? ) 200 = ; +: success? ( code -- ? ) 200 299 between? ; ERROR: download-failed response ;