httpclient 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f6d591e54f4bc86c236ad7e881727379da4ad0b
4
- data.tar.gz: 15d8bc12ca3476af63ea9f020d2a19d7434b348a
3
+ metadata.gz: fe7ba9f139cfc111a42467a73f01743bc911c3f8
4
+ data.tar.gz: 6bf4a27f502ba26e21394129c217731762bc8a03
5
5
  SHA512:
6
- metadata.gz: 0bad356e02f908346a39f3d735827a200715a70a4c27d2f0ca8e6efae79e18816bbddb0eb290bc404dca6851a21e6543d22ca6a9415f17550552018f56149e3b
7
- data.tar.gz: 7e2d85bb7da156d7aeb5c738b2233c830d7d8e614793310eb62618a9b1c5700aa3b5590ee1f11a2ce420c61c585bd8d8e2d86db6d53a9c1e7fd20c6475ed793d
6
+ metadata.gz: 969b983107b342c9b331fd952860ecffe525ab10e19302bdaf01164b65e0b966eb58ff588ceb5e2e14e8412e8eac978f9da5dcc542a42503ee7044ac9ae7d428
7
+ data.tar.gz: 9a24bd0e2bd9e30dc1796135b9c2e03fe93be7bd55b41974f543d45af8e38527d43706824bdf6f42a2ffff212516bf5332b1ddd891a630dd51ae4b83cc206cf9
data/README.md CHANGED
@@ -71,12 +71,6 @@ You can install httpclient via rubygems: `gem install httpclient`
71
71
  See HTTPClient for documentation.
72
72
  You can also check sample/howto.rb how to use APIs.
73
73
 
74
-
75
- ## Download
76
-
77
- * Gem repository
78
- * https://rubygems.org/gems/httpclient
79
-
80
74
  ## Bug report or Feature request
81
75
 
82
76
  Please file a ticket at the project web site.
@@ -85,836 +79,6 @@ Please file a ticket at the project web site.
85
79
  2. create a new ticket by clicking 'Create Issue' button.
86
80
  3. you can use github features such as pull-request if you like.
87
81
 
88
- Thanks in advance.
89
-
90
-
91
82
  ## Changes
92
83
 
93
- ### Changes in 2.4.0
94
-
95
- Jun 8, 2014 - version 2.4.0
96
-
97
- **IMPORTANT CHANGES**
98
-
99
- This version changes default SSL version to :auto (same as nil) to use SSL/TLS
100
- version negotiation. Former versions use SSLv3 as default that does not connect
101
- via TLS. This change makes underlying OpenSSL library decide which SSL/TLS
102
- version to use but SSLv2 is disabled.
103
-
104
- This change makes your secure connection safer but if you see SSL connection
105
- failure with this version try specifying SSL version to use SSLv3 like;
106
- ```
107
- client = HTTPClient.new
108
- client.ssl_config.ssl_version = :SSLv3
109
- ```
110
-
111
- * Bug fixes
112
- * Avoid unnecessary connection retries for OAuth error.
113
- [#203](https://github.com/nahi/httpclient/issues/203)
114
- * Make authentication drivers Thread-safe. Note that HTTPClient instance is
115
- Thread-safe for authentication state update but it shares authentication
116
- state across threads by design. If you don't want to share authentication
117
- state, such as for using different authentication username/password pair
118
- per thread, create HTTPClient instance for each Thread.
119
- [#200](https://github.com/nahi/httpclient/issues/200)
120
- * Avoid chunked String recycle in callback block.
121
- [#193](https://github.com/nahi/httpclient/issues/193)
122
- * Do not send empty 'oauth_token' in signed request for compatibility.
123
- [#188](https://github.com/nahi/httpclient/issues/188)
124
- * Ignore negative Content-Length header from server.
125
- [#175](https://github.com/nahi/httpclient/issues/175)
126
- * Fix incorrect use of absolute URL for HTTPS proxy requests.
127
- [#168](https://github.com/nahi/httpclient/issues/168)
128
- * Handle UTF characters in chunked bodies.
129
- [#167](https://github.com/nahi/httpclient/issues/167)
130
- * A new cookie never be accepted if an HTTPClient has the same expired cookie.
131
- [#154](https://github.com/nahi/httpclient/issues/154)
132
- * Allow spaces in NO_PROXY environment like; "hosta, hostb"
133
- [#141](https://github.com/nahi/httpclient/issues/141)
134
- * Avoid HttpClient::Message::Body#dump causes Encoding::CompatibilityError.
135
- [#140](https://github.com/nahi/httpclient/issues/140)
136
-
137
- * Changes
138
- * Change default SSL version to :auto to use version negotiation.
139
- [#186](https://github.com/nahi/httpclient/issues/186),
140
- [#204](https://github.com/nahi/httpclient/issues/204)
141
- * Allow to pass client private key passphrase in SSLConfig.
142
- [#201](https://github.com/nahi/httpclient/issues/201)
143
- * Convert README to markdown syntax
144
- [#198](https://github.com/nahi/httpclient/issues/198)
145
- * Update default CA certificates: change the source from JDK's to Firefox's.
146
- The file is downloaded from
147
- https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
148
- (Certificate data from Mozilla as of: Tue Apr 22 08:29:31 2014)
149
- [#195](https://github.com/nahi/httpclient/issues/195)
150
- * Callback block can be defined as to get 2 arguments to retrieve the
151
- response object.
152
- [#194](https://github.com/nahi/httpclient/issues/194)
153
- * Remove [] from given address for IPv6 compat.
154
- [#176](https://github.com/nahi/httpclient/issues/176)
155
- * Update API endpoints to those of Twitter REST API v1.1.
156
- [#150](https://github.com/nahi/httpclient/issues/150)
157
-
158
-
159
- ### Changes in 2.3.4
160
-
161
- July 27, 2013 - version 2.3.4
162
-
163
- * Bug fixes
164
- * Make sure to read socket in BINARY buffer.
165
- [#171](https://github.com/nahi/httpclient/issues/171)
166
-
167
- ### Changes in 2.3.3
168
-
169
- February 24, 2013 - version 2.3.3
170
-
171
- * Changes
172
-
173
- * Add User-Agent field by default. You can remove the header by setting nil
174
- to HTTPClient#agent_name.
175
- [#144](https://github.com/nahi/httpclient/issues/144)
176
-
177
- ### Changes in 2.3.2
178
-
179
- January 5, 2013 - version 2.3.2
180
-
181
- ```
182
- * Changes
183
-
184
- * #138 Revert Timeout change unintentionally included in v2.3.1. It's
185
- reported that the change causes background processes not terminated
186
- properly.
187
- ```
188
-
189
- ### Changes in 2.3.1
190
-
191
- January 1, 2013 - version 2.3.1
192
-
193
- ```
194
- * Changes
195
-
196
- * #137 Signing key is expiring for cacert_sha1.p7s.
197
- Deleted p7s signature check for default cacerts. Sorry for many troubles
198
- in the past. This feature is not useful without having online/real-time
199
- CA certs update but I don't think I can implement it in near future.
200
- Users depend on this signature check (who puts cacert.p7s in R/W
201
- filesystem and ssl_config.rb in R/O filesystem) should take care the
202
- tampering by themself.
203
-
204
- * Bug fixes
205
-
206
- * #122 Support IPv6 address in URI
207
- ```
208
-
209
-
210
- ### Changes in 2.3.0
211
-
212
- October 10, 2012 - version 2.3.0
213
-
214
- ```
215
- * Features
216
-
217
- * Added debug mode CLI. bin/httpclient is installed as CLI.
218
- Usage: 1) % httpclient get https://www.google.co.jp/ q=ruby
219
- Usage: 2) %httpclient
220
- For 1) it issues a GET request to the given URI and shows the wiredump
221
- and the parsed result. For 2) it invokes irb shell with the binding
222
- that has a HTTPClient as 'self'. You can call HTTPClient instance
223
- methods like;
224
- > get "https://www.google.co.jp/", :q => :ruby
225
-
226
- * #119 Addressable gem support (only if it exists); should handle IRI
227
- properly.
228
-
229
- * Bug fixes
230
-
231
- * #115 Cookies couldn't work properly if the path in an URI is ommited.
232
- * #112, #117 Proper handling of sized IO (the IO object that responds to
233
- :size) for chunked POST. HTTPClient did read till EOF even if the
234
- given IO has :size method.
235
- * Handle '303 See Other' properly. RFC2616 says it should be redirected
236
- with GET.
237
- * #116 Fix "100-continue" support. It was just ignored.
238
- * #118 Support for boolean values when making POST/PUT requests with
239
- multiipart/form Content-Type.
240
- * #110 Allows leading dots in no_proxy hostname suffixes.
241
- ```
242
-
243
- ### Changes in 2.2.7
244
-
245
- August 14, 2012 - version 2.2.7
246
-
247
- ```
248
- * Bug fixes
249
-
250
- * Fix arity incompatibility introduced in 2.2.6. It broke Webmock.
251
- Thanks Andrew France for the report!
252
- ```
253
-
254
- ### Changes in 2.2.6
255
-
256
- August 14, 2012 - version 2.2.6
257
-
258
- ```
259
- * Bug fixes
260
-
261
- * Make get_content doesn't raise a BadResponseError for perfectly good
262
- responses like 304 Not Modified. Thanks to Florian Hars.
263
-
264
- * Add 'Content-Type: application/x-www-form-urlencoded' for the PUT
265
- request that has urlencoded entity-body.
266
-
267
- * Features
268
-
269
- * Add HTTPClient::IncludeClient by Jonathan Rochkind, a mix-in for easily
270
- adding a thread-safe lazily initialized class-level HTTPClient object
271
- to your class.
272
-
273
- * Proxy DigestAuth support. Thanks to Alexander Kotov and Florian Hars.
274
-
275
- * Accept an array of strings (and IO-likes) as a query value
276
- e.g. `{ x: 'a', y: [1,2,3] }` is encoded into `"x=a&y=1&y=2&y=3"`.
277
- Thanks to Akinori MUSHA.
278
-
279
- * Allow body for DELETE method.
280
-
281
- * Allow :follow_redirect => true for HEAD request.
282
-
283
- * Fill request parameters request_method, request_uri and request_query
284
- as part of response Message::Header.
285
- ```
286
-
287
- ### Changes in 2.2.5
288
-
289
- May 06, 2012 - version 2.2.5
290
-
291
- ```
292
- * Bug fixes
293
-
294
- * Added Magic encoding comment to hexdump.rb to avoid encoding error.
295
- * Add workaround for JRuby issue on Windows (JRUBY-6136)
296
- On Windows, calling File#size fails with an Unknown error (20047).
297
- This workaround uses File#lstat instead.
298
- * Require open-uri only on ruby 1.9, since it is not needed on 1.8.
299
-
300
- * Features
301
-
302
- * Allow symbol Header name for HTTP request.
303
- * Dump more SSL certificate information under $DEBUG.
304
- * Add HTTPClient::SSLConfig#ssl_version property.
305
- * Add 'Accept: */*' header to request by default. Rails requies it.
306
- It doesn't override given Accept header from API.
307
- * Add HTTPClient::SSLConfig#set_default_paths. This method makes
308
- HTTPClient instance to use OpenSSL's default trusted CA certificates.
309
- * Allow to set Date header manually.
310
- ex. clent.get(uri, :header => {'Date' => Time.now.httpdate})
311
- ```
312
-
313
- ### Changes in 2.2.4
314
-
315
- Dec 08, 2011 - version 2.2.4
316
-
317
- ```
318
- * Bug fixes
319
-
320
- * Do not recycle buffer String object for yielding. When the response is
321
- not chunked and the size of the response > 16KB, API with block style
322
- yields recycled String object for each yields.
323
-
324
- * Set VERSION string in User-Agent header. $Id$ didn't work long time...
325
-
326
- Bugs are reported by Seamus Abshere. Thanks!
327
- ```
328
-
329
- ### Changes in 2.2.3
330
-
331
- Oct 28, 2011 - version 2.2.3
332
-
333
- ```
334
- * Bug fixes
335
-
336
- * Ruby 1.8.6 support. It's broken from 2.2.0.
337
- ```
338
-
339
- ### Changes in 2.2.2
340
-
341
- Oct 17, 2011 - version 2.2.2
342
-
343
- ```
344
- * Bug fixes
345
-
346
- * Do not sort query params on request: Wrongly sorted query params for
347
- easier debugging but the order of request parameter should be
348
- preserved. #65
349
-
350
- * Changes
351
-
352
- * Set responce String encoding if possible. Parse content-type response
353
- header with some helps from OpenURI::Meta and set response String
354
- encoding. #26
355
-
356
- * Improve connection cache strategy. Reuse cached session in MRU order,
357
- not in LRU. MRU is more server friendly than LRU because it reduces
358
- number of cached sessions when a number of requests drops after an
359
- usaage spike.
360
-
361
- With reusing sessions in LRU order, all sessions are equally checked if
362
- it's closed or not, as far as there's a request to the same site. With
363
- reusing sessions in MRU order, old cold sessions are kept in cache long
364
- time even if there's a request to the same site. To avoid this leakage,
365
- this version adds keep_alive_timeout property and let SessionManager
366
- scrub all sessions with checking the timeout for each session. When the
367
- session expires against the last used time, it's closed and collected.
368
-
369
- keep_alive_timeout is 15[sec] by default. The value is from the default
370
- value for KeepAliveTimeout of Apache httpd 2. #68 #69
371
- ```
372
-
373
- ### Changes in 2.2.1
374
-
375
- Jun 2, 2011 - version 2.2.1
376
-
377
- ```
378
- * Bug fixes
379
-
380
- * For Lighttpd + PUT/POST support, do not send a request using chunked
381
- encoding when IO respond to :size, File for example.
382
-
383
- - There is no need to send query with Transfer-Encoding: chuncked when
384
- IO respond to :size.
385
- - Lighttpd does not support PUT, POST with Transfer-Encoding: chuncked.
386
- You will see that the lighty respond with 200 OK, but there is a file
387
- whose size is zero.
388
-
389
- LIMITATION:
390
- timeout occurs certainly when you send very large file and
391
- @send_timeout is default since HTTPClient::Session#query() assumes
392
- that *all* write are finished in @send_timeout sec not each write.
393
-
394
- WORKAROUND:
395
- increment @send_timeout and @receive_timeout or set @send_timeout and
396
- @receive_timeout to 0 not to be timeout.
397
-
398
- This fix is by TANABE Ken-ichi <nabeken@tknetworks.org>. Thanks!
399
-
400
- * Allow empty http_proxy ENV variable. Just treat it the same as if it's
401
- nil/unset. This fix is by Ash Berlin <ash_github@firemirror.com>.
402
- Thanks!
403
-
404
- * Check EOF while reading chunked response and close the session. It
405
- raised NoMethodError.
406
-
407
- * Changes
408
-
409
- * Updated trusted CA certificates file (cacert.p7s and cacert_sha1.p7s).
410
- CA certs are imported from
411
- 'Java(TM) SE Runtime Environment (build 1.6.0_25-b06)'.
412
-
413
- * Changed default chunk size from 4K to 16K. It's used for reading size
414
- at a time.
415
- ```
416
-
417
- ### Changes in 2.2.0
418
-
419
- Apr 8, 2011 - version 2.2.0
420
-
421
- ```
422
- * Features
423
- * Add HTTPClient#cookies as an alias of #cookie_manager.cookies.
424
-
425
- * Add res.cookies method. It returns parsed cookie in response header.
426
- It's different from client.cookie_manager.cookies. Manager keeps
427
- persistent cookies in it.
428
-
429
- * Add res.headers method which returns a Hash of headers.
430
- Hash key and value are both String. Each key has a single value so you
431
- can't extract exact value when a message has multiple headers like
432
- 'Set-Cookie'. Use header['Set-Cookie'] for that purpose.
433
- (It returns an Array always)
434
-
435
- * Allow keyword style argument for HTTPClient#get, post, etc.
436
- Introduced keywords are: :body, :query, and :header.
437
- You can write
438
- HTTPClient.get(uri, :header => {'X-custom' => '1'})
439
- instead of;
440
- HTTPClient.get(uri, nil, {'X-custom' => '1'})
441
-
442
- * Add new keyword argument :follow_redirect to get/post. Now you can
443
- follow redirection response with passing :follow_redirect => true.
444
-
445
- * [INCOMPAT] Rename HTTPClient::HTTP::Message#body to #http_body, then
446
- add #body as an alias of #content. It's incompatible change though
447
- users rarely depends on this method. (I've never seen such a case)
448
- Users who are using req.body and/or res.body should follow this
449
- change. (req.http_body and res.http_body)
450
-
451
- * Bug fixes
452
-
453
- * Reenable keep-alive for chunked response.
454
- This feature was disabled by c206b687952e1ad3e20c20e69bdbd1a9cb38609e at
455
- 2008-12-09. I should have written a test for keep-alive. Now I added it.
456
- Thanks Takahiro Nishimura(@dr_taka_n) for finding this bug.
457
- ```
458
-
459
- ### Changes in 2.1.7
460
-
461
- Mar 22, 2011 - version 2.1.7
462
-
463
- ```
464
- * Features
465
- * Add MD5-sess auth support. Thanks to wimm-dking. (#47)
466
- * Add SNI support. (Server Name Indication of HTTPS connection) (#49)
467
- * Add GSSAPI auth support using gssapi gem. Thanks to zenchild. (#50)
468
- * NTLM logon to exchange Web Services. [experimental] Thanks to curzonj and mccraigmccraig (#52)
469
- * Add HTTPOnly cookie support. Thanks to nbrosnahan. (#55)
470
- * Add HTTPClient#socket_local for specifying local binding hostname and port of TCP socket. Thanks to icblenke.
471
- ```
472
-
473
- ### Changes in 2.1.6
474
-
475
- Dec 20, 2010 - version 2.1.6
476
-
477
- ```
478
- * IMPORTANT update for HTTPS(SSL) connection
479
- * Trusted CA bundle file cacert_sha1.p7s for older environment (where
480
- you cannot use SHA512 algorithm such as an old Mac OS X) included in
481
- httpclient 2.1.5 expires in Dec 31, 2010. Please update to 2.1.6 if
482
- you're on such an environment.
483
- * Updated trusted CA certificates file (cacert.p7s and cacert_sha1.p7s).
484
- CA certs are imported from
485
- 'Java(TM) SE Runtime Environment (build 1.6.0_22-b04)'.
486
-
487
- * IMPORTANT bug fix for persistent connection
488
- * #29 Resource Leak: If httpclient establishes two connections to the
489
- same server in parallel, one of these connections will be leaked, patch
490
- by xb.
491
- * #30 When retrying a failed persistent connection, httpclient should use
492
- a fresh connection, reported by xb.
493
- These 2 fixes should fix 'Too many open files' error as well if you're
494
- getting this. Please check 2.1.6 and let me know how it goes!
495
-
496
- * Features
497
- * #4 Added OAuthClient. See sample clients in sample/ dir.
498
- * #42 Added transparent_gzip_decompression property, patch by Teshootub7.
499
- All you need to use it is done by;
500
- client.transparent_gzip_decompression = true
501
- Then you can retrieve a document as usural in decompressed format.
502
- * #38 Debug dump binary data (checking it includes \0 or not) in hex
503
- encoded format, patch by chetan.
504
-
505
- * Bug fixes
506
- * #8 Opened certificate and key files for SSL not closed properly.
507
- * #10 "get" method gets blocked in "readpartial" when receiving a 304
508
- with no Content-Length.
509
- * #11 Possible data corruption problem in asynchronous methods, patch by
510
- a user. (http://dev.ctor.org/http-access2/ticket/228)
511
- * #13 illegal Cookie PATH handling. When no PATH part given in Set-Cookie
512
- header, URL's path part should be used for path variable.
513
- * #16 httpclient doesn't support multiline server headers.
514
- * #19 set_request_header clobbers 'Host' header setting if given, patch
515
- by meuserj.
516
- * #20 Relative Location on https redirect fails, patch by zenchild.
517
- * #22 IIS/6 + MicrosoftSharePointTeamServices uses "NTLM" instead of
518
- "Negotiate".
519
- * #27 DigestAuth header: 'qop' parameter must not be enclosed between
520
- double quotation, patch by ibc.
521
- * #36 Wrong HTTP version in headers with Qt4 applications, reported by
522
- gauleng.
523
- * #38 DigestAuth + posting IO fails, patch by chetan.
524
- * #41 https-over-proxy fails with IIS, patch by tai.
525
- ```
526
-
527
- ### Changes in 2.1.5
528
-
529
- Jun 25, 2009 - version 2.1.5.2
530
-
531
- ```
532
- * Added another cacert distribution certificate which uses
533
- sha1WithRSAEncryption. OpenSSL/0.9.7 cannot handle non-SHA1 digest
534
- algorithm for certificate. The new certificate is
535
- RSA 2048 bit + SHA1 + notAfter:2010/12/31. Corresponding CA bundle file
536
- is cacert_sha1.p7s. It is loaded only when cacert.p7s cannot be loaded
537
- with the original distribution certificate.
538
- ```
539
-
540
- Jun 11, 2009 - version 2.1.5.1
541
-
542
- ```
543
- * README update.
544
- ```
545
-
546
- Jun 8, 2009 - version 2.1.5
547
-
548
- ```
549
- * IMPORTANT update for HTTPS(SSL) connection
550
- * Trusted CA bundle file included in httpclient <= 2.1.4 expires in
551
- Nov 2009. Please update to 2.1.5 by Oct 2009 if your application
552
- depends on trusted CA bundle file.
553
- * Updated trusted CA certificates file (cacert.p7s). CA certs are
554
- imported from 'Java(TM) SE Runtime Environment (build 1.6.0_13-b03)'.
555
- * Updated a cacert distribution certificate.
556
- RSA 2048 bit + SHA512 + notAfter:2037/12/31. (#215)
557
-
558
- * Feature
559
- * WWW authentication with Negotiate based on win32/sspi as same as Proxy
560
- authentication. Applied a patch from Paul Casto. Thanks! (#212)
561
-
562
- * Bug fixes
563
- * Infinite loop caused by EOF error while reading response message body
564
- without Content-Length. IO#readpartial does not clear the second
565
- argument (buffer) when an exception raised. Fixed by a patch from an
566
- user. Thanks! (#216)
567
- * NoMethodError caused by the cookie string that includes a double
568
- semicolons ";;". Fixed by a patch from an user. Thanks! (#211)
569
- * CNONCE attribute in Digest Authentication was not properly generated by
570
- itself (used same nonce sent from the connecting server). Fixed by a
571
- patch from bterlson
572
- [http://github.com/bterlson/httpclient/commit/6d0df734840985a7be88a2d54443bbf892d50b9a]
573
- Thanks! (#209)
574
- * Cookie header was not set in authentication negotiation. Fixed. This
575
- bug was found and pointed out by bterlson at
576
- [http://github.com/bterlson/httpclient/commits/master]. Thanks! (#210)
577
- * Do not send 'Content-Length: 0' when a request doesn't have message
578
- body. Some server application (!EasySoap++/0.6 for example) corrupts
579
- with the request with Content-Length: 0. This bug was found by clay
580
- [http://daemons.net/~clay/2009/05/03/ruby-why-do-you-torment-me/].
581
- Thanks! (#217)
582
- * Ensure to reset connection after invoking HTTPClient singleton methods
583
- for accessing such as HTTPClient.get_content. Thanks to @xgavin! (#214)
584
- ```
585
-
586
- ### Changes in 2.1.4
587
-
588
- Feb 13, 2009 - version 2.1.4
589
-
590
- ```
591
- * Bug fixes
592
- * When we hit some site through http-proxy we get a response without
593
- Content-Length header. httpclient/2.1.3 drops response body for such
594
- case. fixed. (#199)
595
- * Avoid duplicated 'Date' header in request. Fixed. (#194)
596
- * Avoid to add port number to 'Host' header. Some servers like GFE/1.3
597
- dislike it. Thanks to anonymous user for investigating the behavior.
598
- (#195)
599
- * httpclient/2.1.3 does not work when you fork a process after requiring
600
- httpclient module (Passenger). Thanks to Akira Yamada for tracing down
601
- this bug. (#197)
602
- * httpclient/2.1.3 cannot handle Cookie header with 'expires=' and
603
- 'expires=""'. Empty String for Time.parse returns Time.now unlike
604
- ParseDate.parsedate. Thanks to Mark for the patch. (#200)
605
- ```
606
-
607
- ### Changes in 2.1.3
608
-
609
- Jan 8, 2009 - version 2.1.3.1
610
-
611
- ```
612
- * Security fix introduced at 2.1.3.
613
- * get_content/post_content of httpclient/2.1.3 may send secure cookies
614
- for a https site to non-secure (non-https) site when the https site
615
- redirects the request to a non-https site. httpclient/2.1.3 caches
616
- request object and reuses it for redirection. It should not be cached
617
- and recreated for each time as httpclient <= 2.1.2 and http-access2.
618
- * I realized this bug when I was reading open-uri story on
619
- [ruby-core:21205]. Ruby users should use open-uri rather than using
620
- net/http directly wherever possible.
621
- ```
622
-
623
- Dec 29, 2008 - version 2.1.3
624
-
625
- ```
626
- * Features
627
- * Proxy Authentication for SSL.
628
- * Performance improvements.
629
- * Full RDoc. Please tell me any English problem. Thanks in advance.
630
- * Do multipart file upload when a given body includes a File. You don't
631
- need to set 'Content-Type' and boundary String any more.
632
- * Added propfind and proppatch methods.
633
-
634
- * Changes
635
- * Avoid unnecessary memory consuming for get_content/post_content with
636
- block. get_content returns nil when you call it with a block.
637
- * post_content with IO did not work when redirect/auth cycle is required.
638
- (CAUTION: post_content now correctly follows redirection and posts the
639
- given content)
640
- * Exception handling cleanups.
641
- * Raises HTTPClient::ConfigurationError? for environment problem.
642
- (trying to do SSL without openssl installed for example)
643
- * Raises HTTPClient::BadResponse? for HTTP response problem. You can
644
- get the response HTTPMessage returned via $!.res.
645
- * Raises SocketError? for connection problem (as same as before).
646
-
647
- * Bug fixes
648
- * Avoid unnecessary negotiation cycle for Negotiate(NTLM) authentication.
649
- Thanks Rishav for great support for debugging Negotiate authentication.
650
- * get_content/post_content with block yielded unexpected message body
651
- during redirect/auth cycle.
652
- * Relative URI redirection should be allowed from 2.1.2 but it did not
653
- work... fixed.
654
- * Avoid unnecessary timeout waiting when no message body returned such as
655
- '204 No Content' for DAV.
656
- * Avoid blocking on socket closing when the socket is already closed by
657
- foreign host and the client runs under MT-condition.
658
- ```
659
-
660
- ### Changes in 2.1.2
661
-
662
- Sep 22, 2007 - version 2.1.2
663
-
664
- ```
665
- * HTTP
666
- * implemented Negotiate authentication with a support from exterior
667
- modules. 'rubyntlm' module is required for Negotiate auth with IIS.
668
- 'win32/sspi' module is required for Negotiate auth with ISA.
669
- * a workaround for Ubuntu + SonicWALL timeout problem. try to send HTTP
670
- request in one chunk.
671
-
672
- * SSL
673
- * create new self-signing dist-cert which has serial number 0x01 and
674
- embed it in httpclient.rb.
675
- * update cacert.p7s. certificates are imported from cacerts in JRE 6
676
- Update 2. 1 expired CA certificate
677
- 'C=US, O=GTE Corporation, CN=GTE CyberTrust Root' is removed.
678
-
679
- * Bug fix
680
- * [BUG] SSL + debug_dev didn't work under version 2.1.1.
681
- * [BUG] Reason-Phrase of HTTP response status line can be empty according
682
- * to RFC2616.
683
- ```
684
-
685
- ### Changes in 2.1.1
686
-
687
- Aug 28, 2007 - version 2.1.1
688
-
689
- ```
690
- * bug fix
691
- * domain_match should be case insensitive. thanks to Brian for the patch.
692
- * before calling SSLSocket#post_connection_check, check if
693
- RUBY_VERSION > "1.8.4" for CN based wildcard certificate. when
694
- RUBY_VERSION <= "1.8.4", it fallbacks to the post_connection_check
695
- method in HTTPClient so httpclient should run on 1.8.4 fine as before.
696
-
697
- * misc
698
- * added HTTPClient#test_loopback_http_response which accepts test
699
- loopback response which contains HTTP header.
700
- ```
701
-
702
- ### Changes in 2.1.0
703
-
704
- Jul 14, 2007 - version 2.1.0
705
-
706
- ```
707
- * program/project renamed from 'http-access2' to 'httpclient'.
708
- there's compatibility layer included so existing programs for
709
- http-access2 which uses HTTPAccess2::Client should work with
710
- httpclient/2.1.0 correctly.
711
-
712
- * misc
713
- * install.rb did not install cacerts.p7s. Thanks to knu.
714
- * now HTTPClient loads http_proxy/HTTP_PROXY and no_proxy/NO_PROXY
715
- environment variable at initialization time. bear in mind that it
716
- doesn't load http_proxy/HTTP_PROXY when a library is considered to be
717
- running under CGI environment (checked by ENVREQUEST_METHOD existence.
718
- cgi_http_proxy/CGI_HTTP_PROXY is loaded instead.
719
- ```
720
-
721
- ### Changes in 2.0.9
722
-
723
- Jul 4, 2007 - version 2.0.9
724
-
725
- ```
726
- * bug fix
727
- * fix the BasicAuth regression problem in 2.0.8. A server may return
728
- "BASIC" as an authenticate scheme label instead of "Basic". It must be
729
- treated as a case-insensitive token according to RFC2617 section 1.2.
730
- Thanks to mwedeme for contributing the patch. (#159)
731
- ```
732
-
733
- ### Changes in 2.0.8
734
-
735
- Jun 30, 2007 - version 2.0.8
736
-
737
- ```
738
- * HTTP
739
- * added request/response filter interface and implemented DigestAuth
740
- based on the filter interface. DigestAuth calc engine is based on
741
- http://tools.assembla.com/breakout/wiki/DigestForSoap
742
- Thanks to sromano. (#155)
743
- * re-implemented BasicAuth based on the filter interface. send BasicAuth
744
- header only if it's needed. (#31)
745
- * handle a response which has 2XX status code as a successfull response
746
- while retry check. applied the patch from Micah Wedemeyer.
747
- Thanks! (#158)
748
-
749
- * Connection
750
- * show more friendly error message for unconnectable URL. (#156)
751
-
752
- * bug fixes
753
- * to avoid MIME format incompatibility, add empty epilogue chunk
754
- explicitly. Thanks to the anonymous user who reported #154 (#154)
755
- * rescue EPIPE for keep-alive reconnecting. Thanks to anonymous user
756
- who posted a patch at #124. (#124)
757
- ```
758
-
759
- ### Changes in 2.0.7
760
-
761
- May 13, 2007 - version 2.0.7
762
-
763
- ```
764
- * HTTP
765
- * added proxyauth support. (#6)
766
- * let developer allow to rescue a redirect with relative URI. (#28)
767
- * changed last-chunk condition statement to allow "0000\r\n" marker from
768
- WebLogic Server 7.0 SP5 instead of "0\r\n". (#30)
769
- * fixed multipart form submit. (#29, #116)
770
- * use http_date format as a date in a request header. (#35)
771
- * avoid duplicated Date header when running under mod_ruby. (#127)
772
- * reason phrase in Message#reason contains \r. (#122)
773
- * trim "\n"s in base64 encoded BasicAuth value for interoperability.
774
- (#149)
775
- * let retry_connect return a Message not a content. (#119)
776
- * rescue SocketError and dump a message when a wrong address given. (#152)
777
-
778
- * HTTP-Cookies
779
- * changed "domain" parameter matching condition statement to allow
780
- followings; (#24, #32, #118, #147)
781
- * [host, domain] = [rubyforge.com, .rubyforge.com]
782
- * [host, domain] = [reddit.com, reddit.com]
783
-
784
- * SSL
785
- * bundles CA certificates as trust anchors.
786
- * allow user to get peer_cert. (#117, #123)
787
- * added wildcard certificate support. (#151)
788
- * SSL + HTTP keep-alive + long wait causes uncaught exception. fixed.
789
- (#120)
790
-
791
- * Connection
792
- * fixed a loop condition bug that caused intermittent empty response.
793
- (#150, #26, #125)
794
- ```
795
-
796
- ### Changes in 2.0.6
797
-
798
- September 16, 2005 - version 2.0.6
799
-
800
- ```
801
- * HTTP
802
- * allows redirects from a "POST" request. imported a patch from sveit.
803
- Thanks! (#7)
804
- * add 'content-type: application/application/x-www-form-urlencoded' when
805
- a request contains message-body. (#11)
806
- * HTTP/0.9 support. (#15)
807
- * allows submitting multipart forms. imported a patch from sveit.
808
- Thanks! (#7)
809
-
810
- * HTTP-Cookies
811
- * avoid NameError when a cookie value is nil. (#10)
812
- * added netscape_rule property to CookieManager (false by default). You
813
- can turn on the domain attribute test of Netscape rule with the
814
- property. cf. http://wp.netscape.com/newsref/std/cookie_spec.html
815
- * added HTTPClient#cookie_manager property for accessing its properties.
816
- (#13)
817
- * added save_all_cookies method to save unused and discarded cookies as
818
- well. The patch is from Christian Lademann. Thanks! (#21)
819
- * allow to set cookie_manager. raise an error when set_cookie_store
820
- called and cookie_store has already been set. (#20)
821
-
822
- * SSL
823
- * allows SSL connection debugging when debug_dev != nil. (#14)
824
- * skip post_connection_check when
825
- verify_mode == OpenSSL::SSL::VERIFY_NONE. Thanks to kdraper. (#12)
826
- * post_connection_check: support a certificate with a wildcard in the
827
- hostname. (#18)
828
- * avoid NameError when no peer_cert and VERIFY_FAIL_IF_NO_PEER_CERT
829
- given. Thanks to Christian Lademann.
830
-
831
- * Connection
832
- * insert a connecting host and port to an exception message when
833
- connecting failed. (#5)
834
- * added socket_sync property to HTTPClient(HTTPAccess2::Client) that
835
- controls socket's sync property. the default value is true. CAUTION:
836
- if your ruby is older than 2005-09-06 and you want to use SSL
837
- connection, do not set socket_sync = false to avoid a blocking bug of
838
- openssl/buffering.rb.
839
- ```
840
-
841
- ### Changes in 2.0.5
842
-
843
- December 24, 2004 - version 2.0.5
844
-
845
- ```
846
- This is a minor bug fix release.
847
- - Connect/Send/Receive timeout cannot be configured. fixed.
848
- - IPSocket#addr caused SocketError? on Mac OS X 10.3.6 + ruby-1.8.1 GA.
849
- fixed.
850
- - There is a server which does not like 'foo.bar.com:80' style Host header.
851
- The server for http://rubyforge.org/export/rss_sfnews.php seems to
852
- dislike HTTP/1.1 Host header "Host: rubyforge.net:80". It returns
853
- HTTP 302: Found and redirects to the page again, causes
854
- HTTPAccess2::Client to raise "retry count exceeded". Keat found that the
855
- server likes "Host: rubyforge.net" (not with port number).
856
- ```
857
-
858
- ### Changes in 2.0.4
859
-
860
- February 11, 2004 - version 2.0.4
861
-
862
- ```
863
- - add Client#redirect_uri_callback interface.
864
- - refactorings and bug fixes found during negative test.
865
- - add SSL test.
866
- ```
867
-
868
- ### Changes in 2.0.3
869
-
870
- December 16, 2003 - version 2.0.3
871
-
872
- ```
873
- - no_proxy was broken in 2.0.2.
874
- - do not dump 'Host' header under protocol_version == 'HTTP/1.0'
875
- ```
876
-
877
- ### Changes in 2.0.2
878
-
879
- December ?, 2003 - version 2.0.2
880
-
881
- ```
882
- - do not trust HTTP_PROXY environment variable. set proxy server manually.
883
- http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0072.html
884
- http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0241.html
885
- http://curl.haxx.se/mail/archive-2001-12/0034.html
886
- - follow ossl2 change.
887
- ```
888
-
889
- ### Changes in 2.0.1
890
-
891
- October 4, 2003 - version 2.0.1
892
-
893
- ```
894
- Query was not escaped when query was given as an Array or a Hash. Fixed.
895
- Do not use http_proxy defined by ENV['http_proxy'] or ENV['HTTP_PROXY'] if
896
- the destination host is 'localhost'.
897
- Hosts which matches ENV['no_proxy'] or ENV['NO_PROXY'] won't be proxyed.
898
- [,:] separated. ("ruby-lang.org:rubyist.net")
899
- No regexp. (give "ruby-lang.org", not "*.ruby-lang.org")
900
- If you want specify hot by IP address, give full address.
901
- ("192.168.1.1, 192.168.1.2")
902
- ```
903
-
904
- ### Changes in 2.0
905
-
906
- September 10, 2003 - version 2.0
907
-
908
- ```
909
- CamelCase to non_camel_case.
910
- SSL support (requires Ruby/OpenSSL).
911
- Cookies support. lib/http-access2/cookie.rb is redistributed file which is
912
- originally included in Webagent by TAKAHASHI `Maki' Masayoshi. You can
913
- download the entire package from http://www.rubycolor.org/arc/.
914
- ```
915
-
916
- January 11, 2003 - version J
917
-
918
- ```
919
- ruby/1.8 support.
920
- ```
84
+ See [ChangeLog](https://github.com/nahi/httpclient/blob/master/CHANGELOG.md)