Thanks for your response, Ian.  I don't know how I missed the (web client)
module, but it's right there in my info page.

I've been experimenting with it, but am having similar problem to those
outlined below.  I'm going to start reading some of the code, but my
initial impression is that there's lots of loose interpretation (or at
least execution) of the specs in the servers I'm testing on (Google, CNN)
that are causing errors, e.g.

(http-get (string->uri "http://www.cnn.com";))

yields:

web/client.scm:109:4: In procedure http-get:
web/client.scm:109:4: Throw to key `bad-response' with args `("EOF while
reading response body: ~a bytes of ~a" (18576 106274))'.

In web/client.scm:
    109:4  0 (http-get #<<uri> scheme: http userinfo: #f host: "www.cnn.com"
port: #f path: "" query: #f fragment: #f> #:port #<input-o…> …)

In your google.com web client example, the request seemed to return the
body of the document, but I'm still encountering the -1 expiration problem.
(Guile 2.0.3, though I think I'll go back to the git repo if I can work
around a recent compilation error that showed up).

It might be useful for me to see if I can make the parsing functions more
permissive, since they are (correctly) throwing errors for some common
servers.  Unfortunately, I don't know that much about the innards of HTTP,
but I'm sure I can look at where the errors are generated and short circuit
some of the logic and see what happens.  =)

Thanks for your help with this.

Rick

Reply via email to