Hi Sean,
Even weirder .... when I tried this morning your string-append solution
- which I had left in place - worked immediately with no changes from
last night. The only thing different is I had closed DrRacket before
going to bed and reopened it this morning. Maybe something was wonky in
DrRacket? It had been running about ~14 hours yesterday at the point I
started having trouble and I fought with it a couple more hours before
quitting? But AFAICR, I've never seen that before.
However, as you discovered also, passing the data as #:data doesn't work
and now I'm interested in why. ISTM that the URI + #:data should be
identical to the string-append with "?" and #:method #"GET".
Also, Google recommends using POST if the data is sensitive, but I can't
get POST to work even from a pure HTML form in a browser.
So now I'm really curious as to what's going on.
Thanks for your help,
George
On 4/21/2015 3:39 AM, Sean Kanaley wrote:
Hi George,
I'm not sure then -- I am in Racket 6.1.1. Here is the source that
worked for me:
#lang racket
(require net/http-client
net/uri-codec)
(define (lookup address)
(let [
(form-data (alist->form-urlencoded
(list (cons 'address address)
)))
(response #f)
(lat #f)
(long #f)
]
(printf "Looking up ~s~n" address)
(printf "=> ~s~n" form-data)
(with-handlers [
(exn:fail?
(lambda (e)
3; (fprintf (ferr) "~n~n%%~n~a~n%%~n" (format
"Error: ~a" (exn-message e)))
))
]
(let-values [
((errcode header port)
(http-sendrecv "maps.googleapis.com
<http://maps.googleapis.com>"
(string-append
"http://maps.googleapis.com/maps/api/geocode/json?" form-data)
;#:ssl? ssl?
;#:port port
#:version #"1.1"
#:method #"GET"
#:headers (list "Content-Type:
application/x-www-form-urlencoded")
;#:data form-data
;#:content-decode decodes
))
]
(set! response (port->string port))
;(set! response (read-json port))
(printf "=> ~s~n" response)
))
;(fprintf (ferr) "lat:~s long:~s~n" lat long )
(values lat long)
))
----------------------------------------------------------------------------
(I commented out the fprintfs to avoid dealing with ferr.)
It won't work if #:data is uncommented. I hope that helps, otherwise
I'm stuck too.
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.