Hi guys, I have a problem with Zinc, I need to send a huge amount of data (bytes) that translates to ~50Mb.
When I do something like: ZnEasy post: 'http://localhost:15432' data: (ZnEntity bytes: aHugeByteArray.] I encounter a ‘ConnectionTimedOut: Data send timed out.’, I attach the stack trace: ZdcSocketStream(ZdcSimpleSocketStream)>>flushBytes:startingAt:count: ZdcSocketStream>>next:putAll:startingAt: ZnBivalentWriteStream>>next:putAll:startingAt: ZnUtils class>>nextPutAll:on: ZnByteArrayEntity>>writeOn: ZnEntityWriter>>writeEntity: ZnRequest(ZnMessage)>>writeOn: ZnRequest>>writeOn: ZnClient>>executeRequestResponse ZnClient>>getConnectionAndExecute in Block: [ self executeRequestResponse ] BlockClosure>>ensure: ZnClient>>getConnectionAndExecute ZnClient>>executeWithRedirectsRemaining: ZnClient>>executeWithRetriesRemaining: in Block: [ self executeWithRedirectsRemaining: self maxNumb...etc... BlockClosure>>on:do: ZnClient>>executeWithRetriesRemaining: ZnClient>>executeWithTimeout in Block: [ self executeWithRetriesRemaining: self numberOfR...etc... BlockClosure>>on:do: ZnClient>>executeWithTimeout in Block: [ ... ZnClient>>withTimeoutDo: in Block: [ ^ block value ] ZnConnectionTimeout(DynamicVariable)>>value:during: in Block: [ ... BlockClosure>>ensure: ZnConnectionTimeout(DynamicVariable)>>value:during: ZnConnectionTimeout class(DynamicVariable class)>>value:during: ZnClient>>withTimeoutDo: ZnClient>>executeWithTimeout ZnClient>>execute in Block: [ result := self executeWithTimeout ] ZnClient>>withProgressDo: in Block: [ ^ block value ] ZnSignalProgress(DynamicVariable)>>value:during: in Block: [ ... BlockClosure>>ensure: I tried to: - Augment the client timeout to a huge value (10 mins) but it has no effect: The data send still goes into timeout, after 10-15 sec - I replaced the ZnEntity with a ZnMultiPartFormDataEntity, still no luck I am wondering what else can I do. Moreover, I discovered there is a #signalProgress: message to signal process. The following examples do not work, any hint? ################################################################################ Example 1, from the book @ http://zn.stfx.eu/zn/zinc-http-components-paper.html: UIManager default informUserDuring: [ :bar | [ ^ ZnClient new signalProgress: true; get: 'http://zn.stfx.eu/echo?delay=2' ] on: HTTPProgress do: [ :progress | bar value: progress printString. progress resume ] ] ################################################################################ Example 2, from ZnClientTests>>#testProgress works, but not when issuing a POST request [ :bar | bar title: 'Downloading Sources...'. [ ZnClient new url: 'http://files.pharo.org/sources/PharoV30.sources'; signalProgress: true; downloadTo: FileLocator temp ] on: HTTPProgress do: [ :progress | progress isEmpty ifFalse: [ bar current: progress percentage ]. progress resume ] ] asJob run. …works but only when using #downloadTo: if you do a #post:contents: or a #get: as in the example with #get: 'http://zn.stfx.eu/echo?delay=10' no process is shown. Any hint? Thanks in advance, Roberto