[Pharo-project] Zinc problems found

Esteban Lorenzano estebanlm at gmail.com
Fri Apr 29 00:26:16 CEST 2011


Hi, 
I found some problems on Zinc implementation.

Take this example: 

HTTPSocket 
	httpGetDocument: 'http://127.0.0.1:333/analytics/feeds/accounts/default' 
	args: (Dictionary new 
		at: 'prettyprint' put: #('true');
		yourself)
	accept: '*/*' 
	request: ('Authorization: GoogleLogin Auth={1}{2}' format: {self authenticationKey. String crlf}

this, if I have the correct authentication key, gives me the correct answer (an atom-xml response). 

Now, if I try: 

ZnHTTPSocketFacade
	httpGetDocument: 'http://127.0.0.1:333/analytics/feeds/accounts/default' 
	args: (Dictionary new 
		at: 'prettyprint' put: #('true');
		yourself)
	accept: '*/*' 
	request: ('Authorization: GoogleLogin Auth={1}{2}' format: {self authenticationKey. String crlf}

(this should work, as the facade is for compatibility, I think)

I have two errors, one of them easily solvable, and the other... well... I couldn't solve it in the 15' I spent on it :)

1) arguments are not in the correct way. While HTTPSocket functions expect something like this: 

Dictionary new 
	at: 'prettyprint' put: #('true'); "<-- Parameter is an array"
	yourself.

ZnHTTPSocketFacade expects something like this: 

Dictionary new 
	at: 'prettyprint' put: 'true'; "<-- Parameter is a string"
	yourself.

2) This is the hard one. If you do the get request with parameter fixed, you should get the atom feed. 
But you don't. 
You get a  ZnResponse who is OK (status 200), but entity is empty. I followed the error until this method: 

canReadContent
	^ self hasContentLength or: [ self isChunked or: [ self allowsReadingUpToEnd ] ]

who return false, because none of the questions is true. Then, no entity is filled, and I have no answer :(

Hope this help :)

Cheers,
Esteban
 










More information about the Pharo-project mailing list