You can check out the latest cl+ssl - which contains a fix for the problem:
cd ~/quicklisp/local-projects/ git clone git://gitorious.org/cl-plus-ssl/cl-plus-ssl.git
Quicklisp will automatically find cl+ssl from that location. Remember to remove that checkout after you've upgraded to a newer quicklisp release that has the fix in the future.
-Hans
On Thu, Mar 21, 2013 at 10:54 PM, Peter Kuchta peter@kuchta.co.uk wrote:
Kevin,
Thank you very much - I was absolutely sure I was doing something wrong!
Could you please show how I can roll back to cl+ssl-20130128-git ? I don't know how to do it, I'm a quicklisp newbie.
Many thanks, Piotr
On Thu, Mar 21, 2013 at 9:44 PM, Kevin Raison raison@chatsubo.net wrote:
I encountered this same error after upgrading packages via quicklisp. I rolled back cl+ssl to version cl+ssl-20130128-git and the problem went away. I have not had time to investigate further yet.
-Kevin
On 03/21/2013 02:41 PM, Peter Kuchta wrote:
Hi everybody,
I'm trying to POST some JSON data to a web service:
(ql:quickload :st-json) (ql:quickload :cl-json) (ql:quickload :drakma) (defvar *rc* (merge-pathnames (user-homedir-pathname) ".apirc")) (defvar *user* (with-open-file (s *rc*) (st-json:read-json s))) (defvar api-url (st-json:getjso "url" *user*)) (defvar api-key (st-json:getjso "key" *user*)) (defvar api-email (st-json:getjso "email" *user*)) (setf drakma:*header-stream* *standard-output*) (defvar *req* '(("dataset" . "tigge") ("step" . "24") ("date" . "20071001") ("time" . "00") ("origin" . "all"))) (format t "json:~S~%" (json:encode-json-to-string *req*)) (defun retrieve (api request) (let* ((cookie-jar (make-instance 'drakma:cookie-jar)) (extra-headers (list (cons "From" api-email) (cons "X-API-KEY" api-key))) (url (concatenate 'string api-url api "/requests")) (stream (drakma:http-request url :additional-headers extra-headers :accept "application/json" :method :post :content-type "application/json" :external-format-out :utf-8 :external-format-in :utf-8 :redirect 100 :cookie-jar cookie-jar :content (json:encode-json-to-string
request)
:want-stream t))) (st-json:read-json stream))) (retrieve "/datasets/tigge" *req*)
Unfortunately, I get an error, although the data seems to be encoded OK to JSON and the headers generated by drakma too, I think. Apparently something is wrong with the :content (the list of integers in the errors message is just the list of ASCII codes of the JSON encoded data).
json:"{"dataset":"tigge","step":"24","number":"all","levtype":"sl","date":"20071001","time":"00","origin":"all","type":"pf","param":"tp","area":"70\/-130\/30\/-60","grid":"2\/2","target":"data.grib"}"
POST /v1/datasets/tigge/requests HTTP/1.1 Host: api.service.int <http://api.service.int> User-Agent: Drakma/1.3.0 (SBCL 1.1.5; Darwin; 12.2.0;
http://weitz.de/drakma/) Accept: application/json Connection: close From: me@gmail.com mailto:me@gmail.com X-API-KEY: 19a0edb6d8d8dda1e6a3b21223e4f86a Content-Type: application/json Content-Length: 193
debugger invoked on a SIMPLE-TYPE-ERROR: The value of CL+SSL::THING is #(123 34 100 97 116 97 115 101 116
34 58 34 ...), which is not of type
(SIMPLE-ARRAY
(UNSIGNED-BYTE 8) (*)).
Any idea what's wrong with this code? Many thanks in advance.
Best regards, Piotr
drakma-devel mailing list drakma-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
drakma-devel mailing list drakma-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel