ez_http 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +97 -19
- data/bin/ezhttp +116 -0
- data/doc/EZHttp.html +548 -74
- data/doc/_index.html +1 -1
- data/doc/file.README.html +104 -20
- data/doc/index.html +104 -20
- data/doc/method_list.html +40 -0
- data/doc/top-level-namespace.html +1 -1
- data/ez_http.gemspec +13 -5
- data/lib/ez_http.rb +2 -118
- data/lib/ez_http/core.rb +205 -0
- data/lib/ez_http/version.rb +3 -0
- metadata +28 -7
data/doc/_index.html
CHANGED
data/doc/file.README.html
CHANGED
@@ -56,42 +56,126 @@
|
|
56
56
|
|
57
57
|
<div id="content"><div id='filecontents'><h1>EZHttp</h1>
|
58
58
|
|
59
|
-
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, certificate
|
59
|
+
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads.<br>
|
60
|
+
It supports both command line and ruby code. </p>
|
60
61
|
|
61
62
|
<h2>How to use it</h2>
|
62
63
|
|
63
|
-
<
|
64
|
+
<h3>Command Line</h3>
|
64
65
|
|
65
|
-
<
|
66
|
-
|
66
|
+
<p>Send with query string</p>
|
67
|
+
|
68
|
+
<pre class="code ruby"><code>ezhttp \
|
69
|
+
--url "https://api.twitter.com/1/followers/ids.json" \
|
70
|
+
--method "get" \
|
71
|
+
--data "cursor=-1&screen_name=twitterapi"
|
72
|
+
</code></pre>
|
73
|
+
|
74
|
+
<p>Send with query string</p>
|
75
|
+
|
76
|
+
<pre class="code ruby"><code>ezhttp \
|
77
|
+
--url "https://api.twitter.com/1/followers/ids.json&cursor=-1&screen_name=twitterapi" \
|
78
|
+
--method "get"
|
79
|
+
</code></pre>
|
80
|
+
|
81
|
+
<p>Send with json</p>
|
82
|
+
|
83
|
+
<pre class="code ruby"><code>ezhttp \
|
84
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
85
|
+
--data '{"name":{"fn":"xxx","ln":"xxx"}}' \
|
86
|
+
--method 'post' \
|
87
|
+
--type 'application/json'
|
88
|
+
</code></pre>
|
89
|
+
|
90
|
+
<p>Send with header</p>
|
91
|
+
|
92
|
+
<pre class="code ruby"><code>ezhttp \
|
93
|
+
--url 'https://api.twitter.com/oauth/request_token' \
|
94
|
+
--method 'post' \
|
95
|
+
--header 'Authorization: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0"'
|
96
|
+
</code></pre>
|
97
|
+
|
98
|
+
<p>Upload file</p>
|
99
|
+
|
100
|
+
<pre class="code ruby"><code>ezhttp \
|
101
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
102
|
+
--files 'path_to_file.png'
|
103
|
+
</code></pre>
|
104
|
+
|
105
|
+
<p>Upload multiple files with header</p>
|
106
|
+
|
107
|
+
<pre class="code ruby"><code>ezhttp \
|
108
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
109
|
+
--files 'path_to_file1.zip','path_to_file2.jpg' \
|
110
|
+
--header 'authorization:Basic Zvsdwegbdgegsdv0xvsd='
|
111
|
+
</code></pre>
|
112
|
+
|
113
|
+
<h3>Ruby</h3>
|
114
|
+
|
115
|
+
<p>Send with encoded query string as data</p>
|
116
|
+
|
117
|
+
<pre class="code ruby"><code><span class='comment'># Post request
|
118
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
119
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
120
|
+
|
121
|
+
<span class='comment'># Get request
|
122
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://www.example.com/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
123
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
124
|
+
|
125
|
+
<span class='comment'># OR
|
126
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://www.example.com/api?user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
67
127
|
</code></pre>
|
68
128
|
|
69
|
-
<p>
|
129
|
+
<p>Send with hash as data</p>
|
130
|
+
|
131
|
+
<pre class="code ruby"><code><span class='comment'># Post request
|
132
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
133
|
+
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name2</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value2</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
70
134
|
|
71
|
-
<
|
72
|
-
|
73
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>
|
74
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
135
|
+
<span class='comment'># Put request
|
136
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Put</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
137
|
+
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name2</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value2</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
75
138
|
</code></pre>
|
76
139
|
|
77
|
-
<p>
|
140
|
+
<p>Send with extra headers</p>
|
78
141
|
|
79
|
-
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>
|
80
|
-
<span class='
|
81
|
-
<span class='
|
82
|
-
<span class='
|
142
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
143
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
144
|
+
<span class='kw'>nil</span><span class='comma'>,</span>
|
145
|
+
<span class='lbracket'>[</span>
|
146
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>authentication:oAuth username=xxx&password=xxx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
147
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>other_header:other_values</span><span class='tstring_end'>"</span></span>
|
148
|
+
<span class='rbracket'>]</span><span class='rparen'>)</span>
|
83
149
|
</code></pre>
|
84
150
|
|
85
|
-
<p>
|
151
|
+
<p>Send with pem certificate</p>
|
86
152
|
|
87
|
-
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>
|
88
|
-
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>
|
89
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
153
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Delete</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
154
|
+
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>12345</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
|
90
155
|
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
156
|
+
<span class='kw'>nil</span><span class='comma'>,</span>
|
91
157
|
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
92
158
|
</code></pre>
|
93
159
|
|
94
|
-
<p>
|
160
|
+
<p>Upload file(s)</p>
|
161
|
+
|
162
|
+
<pre class="code ruby"><code><span class='comment'>#
|
163
|
+
</span><span class='id identifier rubyid_files'>files</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
164
|
+
<span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>path_to_file.extension</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rb</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
165
|
+
<span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
166
|
+
<span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
|
167
|
+
|
168
|
+
<span class='comment'># simply upload file
|
169
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Upload</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
170
|
+
<span class='id identifier rubyid_files'>files</span><span class='rparen'>)</span>
|
171
|
+
|
172
|
+
<span class='comment'># upload file with headers
|
173
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Upload</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
174
|
+
<span class='id identifier rubyid_files'>files</span><span class='comma'>,</span>
|
175
|
+
<span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>authorization:Basic Zvsdwegbdgegsdv0xvsd=</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
176
|
+
</code></pre>
|
177
|
+
|
178
|
+
<p>Display response</p>
|
95
179
|
|
96
180
|
<pre class="code ruby"><code><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span>
|
97
181
|
</code></pre>
|
@@ -116,7 +200,7 @@
|
|
116
200
|
</div></div>
|
117
201
|
|
118
202
|
<div id="footer">
|
119
|
-
Generated on
|
203
|
+
Generated on Mon Apr 16 02:15:47 2012 by
|
120
204
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
121
205
|
0.7.5 (ruby-1.9.3).
|
122
206
|
</div>
|
data/doc/index.html
CHANGED
@@ -56,42 +56,126 @@
|
|
56
56
|
|
57
57
|
<div id="content"><div id='filecontents'><h1>EZHttp</h1>
|
58
58
|
|
59
|
-
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, certificate
|
59
|
+
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads.<br>
|
60
|
+
It supports both command line and ruby code. </p>
|
60
61
|
|
61
62
|
<h2>How to use it</h2>
|
62
63
|
|
63
|
-
<
|
64
|
+
<h3>Command Line</h3>
|
64
65
|
|
65
|
-
<
|
66
|
-
|
66
|
+
<p>Send with query string</p>
|
67
|
+
|
68
|
+
<pre class="code ruby"><code>ezhttp \
|
69
|
+
--url "https://api.twitter.com/1/followers/ids.json" \
|
70
|
+
--method "get" \
|
71
|
+
--data "cursor=-1&screen_name=twitterapi"
|
72
|
+
</code></pre>
|
73
|
+
|
74
|
+
<p>Send with query string</p>
|
75
|
+
|
76
|
+
<pre class="code ruby"><code>ezhttp \
|
77
|
+
--url "https://api.twitter.com/1/followers/ids.json&cursor=-1&screen_name=twitterapi" \
|
78
|
+
--method "get"
|
79
|
+
</code></pre>
|
80
|
+
|
81
|
+
<p>Send with json</p>
|
82
|
+
|
83
|
+
<pre class="code ruby"><code>ezhttp \
|
84
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
85
|
+
--data '{"name":{"fn":"xxx","ln":"xxx"}}' \
|
86
|
+
--method 'post' \
|
87
|
+
--type 'application/json'
|
88
|
+
</code></pre>
|
89
|
+
|
90
|
+
<p>Send with header</p>
|
91
|
+
|
92
|
+
<pre class="code ruby"><code>ezhttp \
|
93
|
+
--url 'https://api.twitter.com/oauth/request_token' \
|
94
|
+
--method 'post' \
|
95
|
+
--header 'Authorization: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0"'
|
96
|
+
</code></pre>
|
97
|
+
|
98
|
+
<p>Upload file</p>
|
99
|
+
|
100
|
+
<pre class="code ruby"><code>ezhttp \
|
101
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
102
|
+
--files 'path_to_file.png'
|
103
|
+
</code></pre>
|
104
|
+
|
105
|
+
<p>Upload multiple files with header</p>
|
106
|
+
|
107
|
+
<pre class="code ruby"><code>ezhttp \
|
108
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
109
|
+
--files 'path_to_file1.zip','path_to_file2.jpg' \
|
110
|
+
--header 'authorization:Basic Zvsdwegbdgegsdv0xvsd='
|
111
|
+
</code></pre>
|
112
|
+
|
113
|
+
<h3>Ruby</h3>
|
114
|
+
|
115
|
+
<p>Send with encoded query string as data</p>
|
116
|
+
|
117
|
+
<pre class="code ruby"><code><span class='comment'># Post request
|
118
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
119
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
120
|
+
|
121
|
+
<span class='comment'># Get request
|
122
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://www.example.com/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
123
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
124
|
+
|
125
|
+
<span class='comment'># OR
|
126
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>http://www.example.com/api?user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
67
127
|
</code></pre>
|
68
128
|
|
69
|
-
<p>
|
129
|
+
<p>Send with hash as data</p>
|
130
|
+
|
131
|
+
<pre class="code ruby"><code><span class='comment'># Post request
|
132
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
133
|
+
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name2</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value2</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
70
134
|
|
71
|
-
<
|
72
|
-
|
73
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>
|
74
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
135
|
+
<span class='comment'># Put request
|
136
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Put</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
137
|
+
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name2</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value2</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
75
138
|
</code></pre>
|
76
139
|
|
77
|
-
<p>
|
140
|
+
<p>Send with extra headers</p>
|
78
141
|
|
79
|
-
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>
|
80
|
-
<span class='
|
81
|
-
<span class='
|
82
|
-
<span class='
|
142
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
143
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id=12345&token=sdfwD12g%7Ecc</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
144
|
+
<span class='kw'>nil</span><span class='comma'>,</span>
|
145
|
+
<span class='lbracket'>[</span>
|
146
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>authentication:oAuth username=xxx&password=xxx</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
147
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>other_header:other_values</span><span class='tstring_end'>"</span></span>
|
148
|
+
<span class='rbracket'>]</span><span class='rparen'>)</span>
|
83
149
|
</code></pre>
|
84
150
|
|
85
|
-
<p>
|
151
|
+
<p>Send with pem certificate</p>
|
86
152
|
|
87
|
-
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>
|
88
|
-
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>
|
89
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
153
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Delete</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
154
|
+
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>user_id</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>12345</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
|
90
155
|
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
156
|
+
<span class='kw'>nil</span><span class='comma'>,</span>
|
91
157
|
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
92
158
|
</code></pre>
|
93
159
|
|
94
|
-
<p>
|
160
|
+
<p>Upload file(s)</p>
|
161
|
+
|
162
|
+
<pre class="code ruby"><code><span class='comment'>#
|
163
|
+
</span><span class='id identifier rubyid_files'>files</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
164
|
+
<span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>path_to_file.extension</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>rb</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
165
|
+
<span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
166
|
+
<span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
|
167
|
+
|
168
|
+
<span class='comment'># simply upload file
|
169
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Upload</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
170
|
+
<span class='id identifier rubyid_files'>files</span><span class='rparen'>)</span>
|
171
|
+
|
172
|
+
<span class='comment'># upload file with headers
|
173
|
+
</span><span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Upload</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
174
|
+
<span class='id identifier rubyid_files'>files</span><span class='comma'>,</span>
|
175
|
+
<span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>authorization:Basic Zvsdwegbdgegsdv0xvsd=</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
176
|
+
</code></pre>
|
177
|
+
|
178
|
+
<p>Display response</p>
|
95
179
|
|
96
180
|
<pre class="code ruby"><code><span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span>
|
97
181
|
</code></pre>
|
@@ -116,7 +200,7 @@
|
|
116
200
|
</div></div>
|
117
201
|
|
118
202
|
<div id="footer">
|
119
|
-
Generated on
|
203
|
+
Generated on Mon Apr 16 02:15:47 2012 by
|
120
204
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
121
205
|
0.7.5 (ruby-1.9.3).
|
122
206
|
</div>
|
data/doc/method_list.html
CHANGED
@@ -40,6 +40,38 @@
|
|
40
40
|
<ul id="full_list" class="methods">
|
41
41
|
|
42
42
|
|
43
|
+
<li class="r1 ">
|
44
|
+
<span class='object_link'><a href="EZHttp.html#Delete-class_method" title="EZHttp.Delete (method)">Delete</a></span>
|
45
|
+
|
46
|
+
<small>EZHttp</small>
|
47
|
+
|
48
|
+
</li>
|
49
|
+
|
50
|
+
|
51
|
+
<li class="r2 ">
|
52
|
+
<span class='object_link'><a href="EZHttp.html#Get-class_method" title="EZHttp.Get (method)">Get</a></span>
|
53
|
+
|
54
|
+
<small>EZHttp</small>
|
55
|
+
|
56
|
+
</li>
|
57
|
+
|
58
|
+
|
59
|
+
<li class="r1 ">
|
60
|
+
<span class='object_link'><a href="EZHttp.html#Post-class_method" title="EZHttp.Post (method)">Post</a></span>
|
61
|
+
|
62
|
+
<small>EZHttp</small>
|
63
|
+
|
64
|
+
</li>
|
65
|
+
|
66
|
+
|
67
|
+
<li class="r2 ">
|
68
|
+
<span class='object_link'><a href="EZHttp.html#Put-class_method" title="EZHttp.Put (method)">Put</a></span>
|
69
|
+
|
70
|
+
<small>EZHttp</small>
|
71
|
+
|
72
|
+
</li>
|
73
|
+
|
74
|
+
|
43
75
|
<li class="r1 ">
|
44
76
|
<span class='object_link'><a href="EZHttp.html#Send-class_method" title="EZHttp.Send (method)">Send</a></span>
|
45
77
|
|
@@ -48,6 +80,14 @@
|
|
48
80
|
</li>
|
49
81
|
|
50
82
|
|
83
|
+
<li class="r2 ">
|
84
|
+
<span class='object_link'><a href="EZHttp.html#Upload-class_method" title="EZHttp.Upload (method)">Upload</a></span>
|
85
|
+
|
86
|
+
<small>EZHttp</small>
|
87
|
+
|
88
|
+
</li>
|
89
|
+
|
90
|
+
|
51
91
|
</ul>
|
52
92
|
</div>
|
53
93
|
</body>
|
data/ez_http.gemspec
CHANGED
@@ -1,21 +1,29 @@
|
|
1
|
+
lib = File.expand_path("../lib/", __FILE__)
|
2
|
+
$:.unshift lib unless $:.include?(lib)
|
3
|
+
|
4
|
+
require "ez_http/version"
|
5
|
+
|
1
6
|
Gem::Specification.new do |s|
|
2
7
|
|
3
8
|
# Basic info
|
4
9
|
s.name = "ez_http"
|
5
|
-
s.version =
|
10
|
+
s.version = ::EZHttp::VERSION
|
6
11
|
s.platform = Gem::Platform::RUBY
|
7
|
-
s.date = "2012-04-
|
8
|
-
s.summary = "Make http/https
|
9
|
-
s.description = "A wrapper for ruby net/http, supports http/https, RESTful methods, certificate
|
12
|
+
s.date = "2012-04-15"
|
13
|
+
s.summary = "Make http/https requests easier"
|
14
|
+
s.description = "A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads"
|
10
15
|
s.authors = ["Tianyu Huang"]
|
11
16
|
s.email = ["tianhsky@yahoo.com"]
|
12
17
|
s.homepage = "http://rubygems.org/gems/ez_http"
|
13
18
|
|
14
19
|
# Dependencies
|
15
|
-
#
|
20
|
+
#s.required_rubygems_version = ">= 1.8.22"
|
21
|
+
s.add_dependency "json", ">= 1.6.6"
|
16
22
|
|
17
23
|
# Files
|
18
24
|
s.files = `git ls-files`.split("\n")
|
25
|
+
s.require_paths = ["lib"]
|
26
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
19
27
|
s.extra_rdoc_files = ["README.md", "doc/index.html"]
|
20
28
|
|
21
29
|
end
|
data/lib/ez_http.rb
CHANGED
@@ -1,119 +1,3 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require "openssl"
|
1
|
+
require 'ez_http/version'
|
2
|
+
require 'ez_http/core'
|
4
3
|
|
5
|
-
# A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
|
6
|
-
# How to use:
|
7
|
-
#
|
8
|
-
# # send a post request to specified url with the json as data
|
9
|
-
# response = EZHttp.Send("https://www.example.com:83/api",
|
10
|
-
# {"key1"=>"value1"})
|
11
|
-
#
|
12
|
-
# # send a put request to specified url with encoded query string params as data
|
13
|
-
# response = EZHttp.Send("https://www.example.com:83/api",
|
14
|
-
# "key1=I%27ll+do&key2=He%27+do",
|
15
|
-
# "put",
|
16
|
-
# "application/x-www-form-urlencoded")
|
17
|
-
#
|
18
|
-
# # specify extra headers
|
19
|
-
# response = EZHttp.Send("https://www.example.com:83/api",
|
20
|
-
# {"key1"=>"value1"},
|
21
|
-
# "post",
|
22
|
-
# {"content-type" => "application/json", "authentication" => "xxxx"})
|
23
|
-
#
|
24
|
-
# # use certificate
|
25
|
-
# response = EZHttp.Send("https://www.example.com:83/api",
|
26
|
-
# {"key1"=>"value1"},
|
27
|
-
# "post",
|
28
|
-
# "application/json",
|
29
|
-
# "/path_to_cert.pem")
|
30
|
-
#
|
31
|
-
# # display raw response
|
32
|
-
# puts response.body
|
33
|
-
#
|
34
|
-
# @author Tianyu Huang [tianhsky@yahoo.com]
|
35
|
-
#
|
36
|
-
module EZHttp
|
37
|
-
|
38
|
-
# Send http request to specified url and return responses
|
39
|
-
# @param [String] url: to send request to
|
40
|
-
# @param [Hash/String] data: to send
|
41
|
-
# @param [String] method: choose from "get"/"post"/"delete"/"put", if nil default is "post"
|
42
|
-
# @param [Hash] headers: if nil default is {"content-type" => "application/json"}
|
43
|
-
# @param [String] cert_path: to the certificate file, set nil if none
|
44
|
-
# @return [Net::HTTPResponse] response from remote server, example to access its fields: response.body, response.status
|
45
|
-
#
|
46
|
-
def self.Send(url, data, method="post", headers={"content-type" => "application/json"}, cert_path=nil)
|
47
|
-
|
48
|
-
# Parse url
|
49
|
-
begin
|
50
|
-
uri = URI.parse(url)
|
51
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
52
|
-
if (url.match(/^https/))
|
53
|
-
http.use_ssl = true
|
54
|
-
end
|
55
|
-
rescue
|
56
|
-
throw "Error in url"
|
57
|
-
end
|
58
|
-
|
59
|
-
|
60
|
-
# Create request
|
61
|
-
begin
|
62
|
-
method = method || "post"
|
63
|
-
case method.downcase
|
64
|
-
when "post"
|
65
|
-
request = Net::HTTP::Post.new(uri.request_uri)
|
66
|
-
when "get"
|
67
|
-
request = Net::HTTP::Get.new(uri.request_uri)
|
68
|
-
when "put"
|
69
|
-
request = Net::HTTP::Put.new(uri.request_uri)
|
70
|
-
when "delete"
|
71
|
-
request = Net::HTTP::Delete.new(uri.request_uri)
|
72
|
-
else
|
73
|
-
request = Net::HTTP::Post.new(uri.request_uri)
|
74
|
-
end
|
75
|
-
|
76
|
-
# Set form data
|
77
|
-
request.set_form_data(data)
|
78
|
-
|
79
|
-
# Set default content-type
|
80
|
-
request["content-type"] = "application/json"
|
81
|
-
|
82
|
-
# Set headers
|
83
|
-
unless (headers.class.to_s == "String")
|
84
|
-
if (headers.respond_to?("merge"))
|
85
|
-
headers.each do |key, value|
|
86
|
-
request[key.downcase] = value
|
87
|
-
end
|
88
|
-
end
|
89
|
-
else
|
90
|
-
content_type = headers
|
91
|
-
request["content-type"] = content_type
|
92
|
-
end
|
93
|
-
|
94
|
-
rescue
|
95
|
-
throw "Error in creating request"
|
96
|
-
end
|
97
|
-
|
98
|
-
|
99
|
-
# Add cert if any
|
100
|
-
begin
|
101
|
-
if (cert_path.nil?)
|
102
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
103
|
-
else
|
104
|
-
http.use_ssl = true
|
105
|
-
pem = File.read(cert_path)
|
106
|
-
http.cert = OpenSSL::X509::Certificate.new(pem)
|
107
|
-
http.key = OpenSSL::PKey::RSA.new(pem)
|
108
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
109
|
-
end
|
110
|
-
rescue
|
111
|
-
throw "Error in creating certificate"
|
112
|
-
end
|
113
|
-
|
114
|
-
|
115
|
-
# Send request and return response
|
116
|
-
response = http.request(request)
|
117
|
-
|
118
|
-
end
|
119
|
-
end
|