Emacs 库 request.el 如何解析 kiwix-serve 返回的数据?

下图是我Edebug的时候得到的结果。这个 request 函数返回的结果如何解析?不是JSON,JSON的话直接用函数 :parser 'json-read 就可以了。

下图是kiwix-serve 服务还没有启动的返回错误状态:

这是我目前的代码:

https://github.com/stardiviner/kiwix.el/blob/master/kiwix.el#L222

还请社区里的大神指导下这个该怎么弄?

再结合上 exit with code 7,man curl:

   7      Failed to connect to host.

服务器没启动,没连上不就没任何返回值,用不着解析?

原来如此,request也是在curl基础上的。

我把 kiwix-serve 服务关闭,然后再次request,得到如下输出:

#s(request-response nil nil (html nil (body nil (p nil "(:num-redirects 0 :url-effective \"http://127.0.0.1:8089/\")"))) (error . "exited abnormally with code 7
") error "http://127.0.0.1:8089" t (:type "GET" :sync t :parser (lambda nil (libxml-parse-html-region ... ...)) :error (lambda (&rest args) "

这个 #s(request-response ....) 是一种 cl- structure吧。这种要怎么解析获得这个 (error . "exit with error code 7") ?

是否这个输出的报错并不是 :parse 能够捕获并且解析的?

我查了下,知道要怎么对 cl-defstruct 定义的结构提取值了。 用 request-response-error-thrown

原来 :error handler 里就是捕获的 error-thrown 数据。