guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: http response: can't read body


From: Chris Vine
Subject: Re: http response: can't read body
Date: Mon, 23 Oct 2017 13:48:41 +0100

On Mon, 23 Oct 2017 05:29:54 -0700
Matt Wette <address@hidden> wrote:
> > On Oct 23, 2017, at 2:36 AM, Chris Vine <address@hidden>
> > wrote:
> > 
> > On Sun, 22 Oct 2017 15:25:54 -0700
> > Matt Wette <address@hidden> wrote:  
> >> I'm using Guile 2.2.2 web api and I can't get the body. 
> >> 
> >> I'm getting a response from (http-get <query>).
> >> The (response-code resp) is 200.
> >> The value I get back from (response-body-port resp) says #t for
> >> port? and input-port?
> >> 
> >> But if I try to read-char on the port I get:
> >> ERROR: In procedure get-bytevector-n!:
> >> ERROR: In procedure get-bytevector-n!: Wrong type argument in
> >> position 1 (expecting open input port): #<closed: string 106c24b60>
> >> 
> >> I get the same error if I use read-response-body.
> >> 
> >> What am I doing wrong?
> >> 
> >> Matt  
> > 
> > I have only used http-get in non-streaming mode, but if you are
> > streaming with http-get as I read the documentation you do not use
> > response-body-port - that is for response objects returned by
> > read-response: instead you read the port returned by http-get as its
> > second value .
> > 
> > Chris
> >   
> 
> Thanks.  Second value is a bytevector. -- Matt

OK, then you are not doing streaming.  For a non-streaming call, it's a
string if decode-body? is true (the default) and the content type is
textual, otherwise a bytevector.  If you want to ensure you get a
bytevector so as to do any conversion yourself, set decode-body? to
false.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]