如何让emacs库使用request.el而不是url.el?

时间:2017-06-21 21:53:27

标签: http curl emacs

某些图书馆,例如xml-rpc,直接使用url-retrieve。我希望他们改为使用request.el,以便我可以选择curl作为我的后端。我可以安装一个简单的垫片层吗?

我正在寻找类似curl-for-url的内容,它使用兼容的实现透明地重新绑定url-http。 (curl-for-url本身并不能很好地发挥作用。)

1 个答案:

答案 0 :(得分:1)

你可以使用建议来做到这一点,但你需要使用 ad-get-arg / ad-get-args函数用于提取url-retrieve的参数 调用并确定如何处理它们并将它们传递给 检索功能。可能存在问题的是回调 功能。但是,如果您可以使用下载设置缓冲区 数据以相同的方式,与url-retrieve同名,你应该可以 在请求调用后手动应用回调并设置了 必要时缓冲。

这将是一项相当多的工作,你需要深入挖掘url.el 和request.el库。它也可能有点脆弱。

我将关注的一个问题是使用request.el进行猴子修补。来自 项目页面,看起来这个代码自Emacs版本以来还没有更新 25.1和目前的官方emacs是25.2。这是其中一个问题 猴子修补 - 您需要保持版本同步以避免版本 不兼容问题。

如果有人可以修复已知的错误,那么我似乎也很奇怪 这些补丁尚未应用于主流版本 - 尤其是在使用时 最近发布的主流版本。

我要做的第一件事是升级到emacs 25.2,然后确定是否使用 request.el是合理的。我还会验证您遇到的问题 实际上由于url-retrieve或者可能是由于回调传递给了 那个功能。如果回调有问题,你可能会更好 使用建议来修复这些回调而不是替换底层 问题。

如果您在某些使用url-retrieve的情况下遇到问题,可能会 也更容易上升到一个级别并查看正在使用它的东西 也许使用类似建议来替换对url-retrieve的调用 该级别的请求。

如果您提供,可能有人可以提供更具体的建议 关于你不能或不想使用的确切原因的更多细节 url.el库。