以下は私のelispコードです(資格情報は明らかに偽物です):
(defvar assembla-username "foo")
(defvar assembla-password "bar")
(defvar tickets-url "http://www.assembla.com/spaces/aWx7Oas2352cwqjQWU/tickets/")
(defvar assembla-auth-header (concat "Basic " (base64-encode-string (concat assembla-username ":" assembla-password))))
; curl -H "Accept: application/xml" -u "foo:bar" http://www.assembla.com/spaces/aWx7Oas2352cwqjQWU/tickets/
(defun get-tickets()
(interactive)
(let ((url-request-extra-headers
'(("Accept" . "application/xml")
("Authorization" . assembla-auth-header)))))
(url-retrieve tickets-url (lambda (status)
(switch-to-buffer (current-buffer)))))
発信要求ヘッダーの監視に基づいて、「Accept」ヘッダーが設定されていません。コメントアウトされたcurlリクエストが完全に機能し、Acceptヘッダーを設定しているため、これがログインページにリダイレクトしていると確信しています。
そうは言っても、特に私が間違っていることはありますか、そして/またはelispで多くのREST呼び出しを行うためのより良いラッパーがありますか?
ありがとう!