2009-09-28 9 views
3

url.el (및 url-http.el)을 사용하여 프로그래밍 방식으로 일부 REST 호출을 만들고 싶습니다. 사용자는 이미 다른 방법을 통해 자격 증명을 지정했습니다 (그러나 이것은 약간의 관련성이 있습니다. 인증되지 않은 호출에 대해서도 동일한 동작을 원합니다).하지만 특정 쿼리에서 401 (권한없는) 응답을받을 수 있습니다.401 (Unauthorized) 응답으로 사용자에게 묻지 않고 Emacs의 url.el lib를 사용하는 방법은 무엇입니까?

url.el을 그냥 보내고 사용자에게 묻는 모든 rigmarole을 거치지 않고 그 401 응답을 돌려 주길 원합니다 (누가 다시 묻는 것이 화가 났을까요?).

참고 : 초기 승인 헤더를 수동으로 만들었으므로 url-auth.el (또는 호출 된 항목)의 기능을 사용하지 않습니다.


편집 : 이것은 나 (사샤가 제공하는 솔루션)에 대한 작동하는 것 같다 ... 난 당신이 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) 

답변

3

+0

그것은 실제로 효과가있었습니다. 나는 defadvice에 대해 잊어 버렸고 어떻게 든 작동하지 않는 새로운 정의를 일시적으로 묶어 보았습니다. 내 현재 솔루션은 다음과 같은 내용을 가지고 있습니다 : (defvar * foobar-within-call * nil "foobar 호출로 인해 인증 메커니즘이 필요하지 않음을 나타내는 도우미 변수") (광고 활성화 'URL-HTTP-핸들 인증) (defadvice의 URL-HTTP-핸들 인증 ( (하지 않는 한 *는 foobar-내 통화 * 광고 - 그것))는 foobar-수정 정도) –

관련 문제