1
繼發是我的elisp的代碼(憑證顯然是僞造的):額外的頭未通過url.el
(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)))))
根據監測傳出請求頭,「接受」頭未被設置。我很確定這是將我重定向到登錄頁面的原因,因爲curl請求註釋完美,並設置了Accept標頭。
這就是說,有什麼特別的我做錯了,和/或有沒有更好的包裝在Elisp做很多REST調用?
謝謝!
非常感謝,不幸的是我得到了兩個頭接受Accept,如:Accept:*/* User-Agent:URL/Emacs(x86_64-pc-linux-gnu; TTY) Accept:application/xml – user652650 2012-07-24 11:57:44
@ user652650我做了一個快速的'Mx apropos',發現'url-mime-accept-string'也許可以工作?我不知道,但它看起來像額外的頭不覆蓋原來的。 – ryuslash 2012-07-24 14:06:21