annotate .elisp/http-twiddle.el @ 202:84eb8c90ada9

modes: handle annotations better
author Augie Fackler <durin42@gmail.com>
date Tue, 13 Apr 2010 14:49:59 -0500
parents 35eef880a5ac
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
143
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 ;;; http-twiddle.el -- send & twiddle & resend HTTP requests
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
2 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
3 ;; Version 1.0 written by Luke Gorrie <luke@synap.se> in February 2006
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4 ;; This program belongs to the public domain.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
5 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
6 ;; (downloaded from http://fresh.homeunix.net/~luke/misc/emacs/http-twiddle.el)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
7 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
8 ;; This is a program for testing hand-written HTTP requests. You write
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9 ;; your request in an Emacs buffer (using http-twiddle-mode) and then
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
10 ;; press `C-c C-c' each time you want to try sending it to the server.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
11 ;; This way you can interactively debug the requests. To change port or
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
12 ;; destination do `C-u C-c C-c'.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
13 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
14 ;; The program is particularly intended for the POST-"500 internal
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
15 ;; server error"-edit-POST loop of integration with SOAP programs.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
16 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
17 ;; The mode is activated by `M-x http-twiddle-mode' or automatically
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
18 ;; when opening a filename ending with .http-twiddle.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
19 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
20 ;; The request can either be written from scratch or you can paste it
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
21 ;; from a snoop/tcpdump and then twiddle from there.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
22 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
23 ;; See the documentation for the `http-twiddle-mode' and
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
24 ;; `http-twiddle-mode-send' functions below for more details and try
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
25 ;; `M-x http-twiddle-mode-demo' for a simple get-started example.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
26 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
27 ;; Tested with GNU Emacs 21.4.1 and not tested/ported on XEmacs yet.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
28
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
29 ;;; Example buffer:
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
30
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
31 ;; POST / HTTP/1.0
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
32 ;; Connection: close
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
33 ;; Content-Length: $Content-Length
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
34 ;;
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
35 ;; The request body goes here
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
36
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
37 (require 'font-lock) ; faces
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
38
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
39 (eval-when-compile
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
40 (unless (fboundp 'define-minor-mode)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
41 (require 'easy-mmode)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
42 (defalias 'define-minor-mode 'easy-mmode-define-minor-mode))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
43 (require 'cl))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
44
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
45 (define-minor-mode http-twiddle-mode
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
46 "Major mode for twiddling around with HTTP requests and sending them.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
47 Use `http-twiddle-mode-send' (\\[http-twiddle-mode-send]) to send the request."
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
48 nil
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
49 " http-twiddle"
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
50 '(("\C-c\C-c" . http-twiddle-mode-send)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
51
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
52 (defvar http-twiddle-show-request t
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
53 "*Show the request in the transcript.")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
54
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
55 (add-to-list 'auto-mode-alist '("\\.http-twiddle$" . http-twiddle-mode))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
56
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
57 (defvar http-twiddle-endpoint nil
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
58 "Cache of the (HOST PORT) to send the request to.")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
59
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
60 (defvar http-twiddle-process nil
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
61 "Socket connected to the webserver.")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
62
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
63 (defvar http-twiddle-port-history '()
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
64 "History of port arguments entered in the minibuffer.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
65 \(To make XEmacs happy.)")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
66
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
67 (defvar http-twiddle-host-history '()
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
68 "History of port arguments entered in the minibuffer.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
69 \(To make XEmacs happy.)")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
70
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
71 (defun http-twiddle-mode-send (host port)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
72 "Send the current buffer to the server.
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
73 Linebreaks are automatically converted to CRLF (\\r\\n) format and any
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
74 occurences of \"$Content-Length\" are replaced with the actual content
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
75 length."
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
76 (interactive (http-twiddle-read-endpoint))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
77 ;; close any old connection
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
78 (when http-twiddle-process
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
79 (kill-buffer (process-buffer http-twiddle-process)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
80 (let ((content (buffer-string)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
81 (with-temp-buffer
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
82 (insert content)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
83 (http-twiddle-convert-cr-to-crlf)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
84 (http-twiddle-expand-content-length)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
85 (let ((request (buffer-string)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
86 (setq http-twiddle-process
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
87 (open-network-stream "http-twiddle" "*HTTP Twiddle*" host port))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
88 (set-process-filter http-twiddle-process 'http-twiddle-process-filter)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
89 (set-process-sentinel http-twiddle-process 'http-twiddle-process-sentinel)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
90 (process-send-string http-twiddle-process request)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
91 (save-selected-window
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
92 (pop-to-buffer (process-buffer http-twiddle-process))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
93 (when http-twiddle-show-request
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
94 (insert request)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
95 (set-window-start (selected-window) (point))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
96 (add-text-properties (point-min) (point-max)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
97 '(face font-lock-comment-face)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
98 (set-mark (point)))))))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
99
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
100 (defun http-twiddle-read-endpoint ()
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
101 "Return the endpoint (HOST PORT) to send the request to."
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
102 (if (and http-twiddle-endpoint (null current-prefix-arg))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
103 http-twiddle-endpoint
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
104 (setq http-twiddle-endpoint
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
105 (list (read-string "Host: (default localhost) "
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
106 nil 'http-twiddle-host-history "localhost")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
107 (let ((input (read-from-minibuffer "Port: " nil nil t 'http-twiddle-port-history)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
108 (if (integerp input)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
109 input
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
110 (error "Not an integer: %S" input)))))))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
111
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
112 (defun http-twiddle-convert-cr-to-crlf ()
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
113 "Convert \\n linebreaks to \\r\\n in the whole buffer."
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
114 (save-excursion
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
115 (goto-char (point-min))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
116 (while (re-search-forward "[^\r]\n" nil t)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
117 (backward-char)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
118 (insert "\r"))))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
119
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
120 (defun http-twiddle-expand-content-length ()
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
121 "Replace any occurences of $Content-Length with the actual Content-Length."
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
122 (save-excursion
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
123 (goto-char (point-min))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
124 (let ((content-length
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
125 (save-excursion (when (search-forward "\r\n\r\n" nil t)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
126 (- (point-max) (point))))))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
127 (unless (null content-length)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
128 (let ((case-fold-search t))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
129 (while (search-forward "$content-length" nil t)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
130 (replace-match (format "%d" content-length) nil t)))))))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
131
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
132 (defun http-twiddle-process-filter (process string)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
133 "Process data from the socket by inserting it at the end of the buffer."
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
134 (with-current-buffer (process-buffer process)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
135 (goto-char (point-max))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
136 (insert string)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
137
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
138 (defun http-twiddle-process-sentinel (process what)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
139 (with-current-buffer (process-buffer process)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
140 (goto-char (point-max))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
141 (let ((start (point)))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
142 (insert "Connection closed\n")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
143 (add-text-properties start (point) '(face font-lock-string-face)))))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
144
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
145 (defun http-twiddle-mode-demo ()
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
146 (interactive)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
147 (pop-to-buffer (get-buffer-create "*http-twiddle demo*"))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
148 (http-twiddle-mode 1)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
149 (erase-buffer)
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
150 (insert "POST / HTTP/1.0\nContent-Length: $Content-Length\nConnection: close\n\nThis is the POST body.\n")
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
151 (message "Now press `C-c C-c' and enter a webserver address (e.g. google.com port 80)."))
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
152
35eef880a5ac emacs: add http-twiddle for POST debugging
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
153 (provide 'http-twiddle)