For this one we will use a browser plug-in called CookieBro. It will allow us to import existing cookies from a web browser session into Pharo Smalltalk just using the Zinc HTTP Components, which are by default installed in the image, and NeoJSON. Let's assume then we have exported the cookies in a "cookiebro-cookies.json" file, the script translates the cookie's JSON format into a name–value pair (cookie crumb) suitable for a ZnCookieJar object. And it just requires you to enter the website you want to access:
| jar cookiesFile client | jar := ZnCookieJar new. cookiesFile := 'cookiebro-cookies.json'. (NeoJSONReader fromString: cookiesFile asFileReference) do: [ : d | jar add: (ZnCookie fromString: (String streamContents: [ : stream | d associationsDo: [ : assoc | stream nextPutAll: assoc key asString; nextPut: $=; nextPutAll: assoc value asString; nextPut: $; ]. stream skip: -1 ] )) ]. client := ZnClient new beOneShot; timeout: 5000; numberOfRetries: 0; url: 'https://...'; ifFail: [ : ex | self halt. ]. client session cookiejar: jar. client get
Of course if you have any suggestions I will be glad to read them in the comments.
0 comentarios:
Publicar un comentario