Hello list,
first, to Edi: thanks for such a nice library!
I just stumbled across an error in the http-request function:
DRAKMA-USER <- (http-request "http://www.zeit.de" :method :trace)
Don't know how to handle method :TRACE.
[Condition of type SIMPLE-ERROR]
Restarts:
0: [ABORT-REQUEST] Abort handling SLIME request.
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD
"repl-thread" {AC7D291}>)
triggered by this code in request.lisp:
(unless (member method '(:get :head :post :put) :test #'eq)
(error "Don't know how to handle method ~S." method))
shouldn't the library allow all methods from HTTP/1.1?
Changing the code into:
(unless (member method
'(:get :head :post :put :delete :options :trace) :test #'eq)
(error "Don't know how to handle method ~S." method))
fixes this bugglet. BTW, it might be a good idea to add the methods
needed for WebDAV as well -- at least there seems to be no reason for
not adding them. Some of them would need to be added to case dispatch on
method that sets the request contents (request.lisp, line 344 ff.).
One more remark about the 'OPTIONS' method. The standard introduces a
'magic' request URI to query server options (as opposed to options for a
particular resource) - the request line should look like this:
OPTIONS * HTTP/1.1
Host: my.cool.server
I couldn't find a way to have puri:parse-uri generate a uri whose
uri-path is "*" so i modified http-request to accept an method :options*
(see attached patch).
Cheers, Ralf Mattes
Chunga:
-------
ChangeLog:
Version 0.1.2
2006-09-05
Exported CHUNKED-STREAM-STREAM
Mentioned Gentoo port in docs
Added info about mailing lists
Download:
http://weitz.de/files/chunga.tar.gz
Drakma:
ChangeLog:
Version 0.4.0
2006-09-05
Added file uploads
Added multipart/form-data
Added enforced computation of request bodies in RAM
Use LF line endings in default external format
Download:
http://weitz.de/files/drakma.tar.gz
Cheers,
Edi.