如何使用Emacs';在401(未经授权)响应时询问用户,而不使用url.el lib?

如何使用Emacs';在401(未经授权)响应时询问用户,而不使用url.el lib?,emacs,elisp,Emacs,Elisp,我想使用url.el(特别是url-http.el)以编程方式进行一些REST调用。 用户已经通过其他方式指定了凭据(但这只是略微相关——我也希望在未经身份验证的调用中获得相同的行为),但在某些查询中,我仍然可以得到401(未经授权)响应 我希望url.el顺其自然,并返回401响应,而不必经过所有繁琐的询问用户(用户只会因为再次被询问而恼火) 注意:我手动创建了初始授权头,因此我没有使用url-auth.el(或其他名称)中的任何工具 编辑:这似乎对我有效(Sacha提供的解决方案): 我想

我想使用url.el(特别是url-http.el)以编程方式进行一些REST调用。 用户已经通过其他方式指定了凭据(但这只是略微相关——我也希望在未经身份验证的调用中获得相同的行为),但在某些查询中,我仍然可以得到401(未经授权)响应

我希望url.el顺其自然,并返回401响应,而不必经过所有繁琐的询问用户(用户只会因为再次被询问而恼火)

注意:我手动创建了初始授权头,因此我没有使用url-auth.el(或其他名称)中的任何工具


编辑:这似乎对我有效(Sacha提供的解决方案):


我想您可以添加一些关于url http句柄身份验证的建议…

确实有效。我已经忘记了诽谤,试着暂时用flet绑定一个新的定义,但不知何故,这个定义不起作用。我目前的解决方案是这样的:(call nil中的defvar foobar“Helper变量,用于指示我们是否正在使用foobar调用,因此不希望验证机制启动”)(defadvice url http handle authentication(关于foobar fix)(除非call ad中的foobar这样做))(ad激活“url http句柄身份验证”)
(defvar *foobar-within-call* nil
  "Helper variable to indicate if we are withing a foobar call and thus won't want the authentication mechanisms to kick in")

(defadvice url-http-handle-authentication (around foobar-fix)
  (unless *foobar-within-call*
      ad-do-it))
(ad-activate 'url-http-handle-authentication)