Ich verwende url-retrieve-synchronously
, um eine JSON-Datei von einem Remote-Server herunterzuladen. Diese Funktion gibt einen Puffer zurück, der den gesamten Inhalt der Antwort einschließlich der HTTP-Header enthält. Ich interessiere mich jedoch nur für den Körper.
Wie kann ich, ohne eine HTTP-Antwort manuell zu analysieren, zum Anfang des Körpers springen? Ich habe die Variable gefunden url-http-end-of-headers
, die funktioniert, aber sie ist überhaupt nicht dokumentiert, und ihre Verwendung fühlt sich "schmutzig" an. Gibt es eine geeignete API für diesen Zweck?
url-http-end-of-headers
ist diesem Ansatz vorzuziehen. Ich hatte wirklich auf so etwas gehoffturl-http-goto-body
:(Eine übergeordnete Alternative zur Verwendung
url-http-end-of-headers
, die jedoch nicht dokumentiert ist, isturl-insert-file-contents
:oder gleichwertig vor Emacs 27, kompiliert mit nativer JSON-Unterstützung:
Diese führen zu:
Die Funktion
url-insert-file-contents
umschließt die besser dokumentierten Funktionenurl-insert-buffer-contents
undurl-insert
bietet daher die folgenden Extras:url-http-response-status
.FWIW, es kommt auch mit der Garantie, von verwendet zu werden
lisp/emacs-lisp/package.el
.quelle