help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A (probably silly) problem with request.el


From: Nicolas Richard
Subject: Re: A (probably silly) problem with request.el
Date: Sat, 06 Jun 2015 21:25:56 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Marcin Borkowski <mbork@mbork.pl> writes:
> Now the question is:
> how do I do anything reasonable with what I got?  In my particular case
> I expect json, so I'd like to use e.g. json.el to convert it to s-exps.
> How do I do that?  I tried
>
> (request "http://httpbin.org/get"; :parser #'json-read),

The request form will *never*[1] return json, because it returns before the
request is complete. This is what asynchronous means, and that is why I
said "The real job must be done by a callback function".

The very first example in the homepage of the package uses httpbin.org.
Here's a simplified version of it :

(request
 "http://httpbin.org/get";
 :parser 'json-read
 :success (function*
           (lambda (&key data &allow-other-keys)
             (message "response: %S" data))))

Please try it and see what happens. The function mentionned as :success
takes over once the request is complete (well, unless the request fails
obviously...). That is a "callback" function.

HTH,

-- 
Nico.

[1] Except in the synchronous case, e.g.
(request-response-data
   (request "http://httpbin.org/get"; :parser 'json-read :sync t))
But the doc explicitly says to not use that.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]