<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
On 16/03/2010 01:05, Phil wrote:
<blockquote cite="mid:4B9ED941.9000302@googlemail.com" type="cite">Scrap
my original query - the problem isn't as black &amp; white as I
thought.
  <br>
  <br>
The below works fine - I've changed the response type from json to
xml.... strange, but for some reason downloading json doesn't work....
it's fine on Linux.
  <br>
  <br>
I'm guessing this is more likely to be a Windows issue rather than a
Haskell issue - any ideas?
  <br>
</blockquote>
<br>
A bit more testing - this is not a Windows issue per se.&nbsp; It seems to
be a limitation of the HTTP library running on Windows.<br>
<br>
I've ran what I consider to be identical commands (in terms of
functional use, both perform a HTTP GET on the location given) in
Haskell and Python from each of their consoles on the same computer.&nbsp;
The Python one correctly returns exactly what the Haskell one does on
Linux.&nbsp; The Haskell on Windows just hangs.....<br>
<br>
However as mentioned earlier SOME http requests do work from Haskell so
I don't think it's a problem with my build of HTTP or Network libs.&nbsp;
The simplest example is to replace 'json' with 'xml' in the below
query.&nbsp; The best guess I can make is that XML is deemed renderable, but
for some reason JSON is considered to be binary/file data?<br>
<br>
Can anyone confirm this behaviour.... I only have one 1 Windows PC, so
I can't test on another machine.&nbsp; If it is a wide problem, I reckon it
warrants a bug ticket on the library.....<br>
<br>
Logs from console below,<br>
<br>
Phil<br>
<br>
<b>Haskell / GHCI:</b><br>
Prelude Network.HTTP&gt; do x &lt;- (simpleHTTP $ getRequest
<a class="moz-txt-link-rfc2396E" href="http://maps.google.com/maps/api/geocode/json?address=London&amp;sensor=false">"http://maps.google.com/maps/api/geocode/json?address=London&amp;sensor=false"</a>)
&gt;&gt;= getResponseBody; print x<br>
Loading package bytestring-0.9.1.5 ... linking ... done.<br>
Loading package Win32-2.2.0.1 ... linking ... done.<br>
Loading package array-0.3.0.0 ... linking ... done.<br>
Loading package syb-0.1.0.2 ... linking ... done.<br>
Loading package base-3.0.3.2 ... linking ... done.<br>
Loading package mtl-1.1.0.2 ... linking ... done.<br>
Loading package parsec-2.1.0.1 ... linking ... done.<br>
Loading package network-2.2.1.7 ... linking ... done.<br>
Loading package old-locale-1.0.0.2 ... linking ... done.<br>
Loading package old-time-1.0.0.3 ... linking ... done.<br>
Loading package HTTP-4000.0.9 ... linking ... done.<br>
<br>
--- Just sits here chewing up processor time and memory.....<br>
<br>
<b>Python:</b><br>
&gt;&gt;&gt; print
urllib.urlopen(<a class="moz-txt-link-rfc2396E" href="http://maps.google.com/maps/api/geocode/json?address=London&amp;sensor=false">"http://maps.google.com/maps/api/geocode/json?address=London&amp;sensor=false"</a>).read()<br>
{<br>
&nbsp; "status": "OK",<br>
&nbsp; "results": [ {<br>
&nbsp;&nbsp;&nbsp; "types": [ "locality", "political" ],<br>
&nbsp;&nbsp;&nbsp; "formatted_address": "Westminster, London, UK",<br>
&nbsp;&nbsp;&nbsp; "address_components": [ {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "long_name": "London",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "short_name": "London",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "types": [ "locality", "political" ]<br>
&nbsp;&nbsp;&nbsp; }, {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "long_name": "Westminster",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "short_name": "Westminster",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "types": [ "administrative_area_level_3", "political" ]<br>
&nbsp;&nbsp;&nbsp; }, {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "long_name": "Greater London",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "short_name": "Gt Lon",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "types": [ "administrative_area_level_2", "political" ]<br>
&nbsp;&nbsp;&nbsp; }, {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "long_name": "England",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "short_name": "England",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "types": [ "administrative_area_level_1", "political" ]<br>
&nbsp;&nbsp;&nbsp; }, {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "long_name": "United Kingdom",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "short_name": "GB",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "types": [ "country", "political" ]<br>
&nbsp;&nbsp;&nbsp; } ],<br>
&nbsp;&nbsp;&nbsp; "geometry": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "location": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lat": 51.5001524,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lng": -0.1262362<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "location_type": "APPROXIMATE",<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "viewport": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "southwest": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lat": 51.4862583,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lng": -0.1582510<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "northeast": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lat": 51.5140423,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lng": -0.0942214<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "bounds": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "southwest": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lat": 51.4837180,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lng": -0.1878940<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "northeast": {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lat": 51.5164655,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "lng": -0.1099780<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp; } ]<br>
}<br>
<br>
&gt;&gt;&gt;<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>