[squeak-dev] The Trunk: WebClient-Core-ul.100.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Apr 21 05:08:29 UTC 2015
Levente Uzonyi uploaded a new version of WebClient-Core to project The Trunk:
http://source.squeak.org/trunk/WebClient-Core-ul.100.mcz
==================== Summary ====================
Name: WebClient-Core-ul.100
Author: ul
Time: 21 April 2015, 6:50:26.091 am
UUID: f5066327-2cbe-4505-b9b7-60b053f9cea8
Ancestors: WebClient-Core-topa.99
Introduced WebMessage >> #getContentWithProgress: to avoid code duplication in #contentWithProgress: and #getContent.
Added support for gzip compression to GET requests.
=============== Diff against WebClient-Core-topa.99 ===============
Item was changed:
----- Method: WebClient>>httpGet:do: (in category 'methods') -----
httpGet: urlString do: aBlock
"GET the response from the given url"
"(WebClient httpGet: 'http://www.squeak.org') content"
| request |
self initializeFromUrl: urlString.
request := self requestWithUrl: urlString.
request method: 'GET'.
userAgent ifNotNil:[request headerAt: 'User-Agent' put: userAgent].
+ request headerAt: 'Accept-Encoding' put: 'gzip'.
aBlock value: request.
^self sendRequest: request
!
Item was changed:
----- Method: WebMessage>>contentWithProgress: (in category 'accessing') -----
contentWithProgress: progressBlock
"Reads and caches available content and returns it."
+ ^content ifNil: [ content := self getContentWithProgress: progressBlock ]!
- ^content ifNil:[ | length |
- length := self contentLength.
- content := (stream isBinary ifTrue:[ByteArray] ifFalse:[ByteString])
- new: (length ifNil:[1000])
- streamContents:[:s| self streamFrom: stream to: s size: length progress: progressBlock]].!
Item was changed:
----- Method: WebMessage>>getContent (in category 'private') -----
getContent
"Reads available content and returns it."
+ ^self getContentWithProgress: nil!
- | length size buffer |
- length := self contentLength.
- size := length ifNil:[1000].
- buffer := ((stream isBinary ifTrue:[ByteArray] ifFalse:[ByteString])
- new: size) writeStream.
- self streamFrom: stream to: buffer size: length progress: nil.
- ^buffer position = size
- ifTrue: [ buffer originalContents ]
- ifFalse: [ buffer contents ]!
Item was added:
+ ----- Method: WebMessage>>getContentWithProgress: (in category 'private') -----
+ getContentWithProgress: progressBlockOrNil
+ "Reads available content and returns it."
+
+ | length result |
+ length := self contentLength.
+ result := (stream isBinary ifTrue:[ ByteArray ] ifFalse: [ ByteString ])
+ new: (length ifNil: [ 1000 ])
+ streamContents: [ :outputStream |
+ self
+ streamFrom: stream
+ to: outputStream
+ size: length
+ progress: progressBlockOrNil ].
+ (self headerAt: 'content-encoding') = 'gzip' ifFalse: [ ^result ].
+ ^(GZipReadStream on: result) upToEnd
+ !
More information about the Squeak-dev
mailing list
|