Hi,

Are you calling intarweb#read-urlencoded-request-data [1] with the JSON
data? I think that procedure only handles form-data. You have to parse JSON
yourself, using json,medea or cjson.

[1] http://api.call-cc.org/5/doc/intarweb/read-urlencoded-request-data

K.

On Tue, Jan 4, 2022, 05:21 masukomi <masuk...@masukomi.org> wrote:

> I'm working on a small webapp with a JSON api. I've stumbled across a bug
> where I can't POST JSON with a % sign in it or it'll blow up.
>
> for example if i POST this json:
>
> ```
> {
> "foo": "%"
> }
> ```
>
> i get this stack trace
> ```
> [Mon Jan  3 23:08:44 2022] "POST http://localhost:5749/json/sanity-check/
> HTTP/1.1" Error: (string->symbol)
> bad argument type - not a string
> #f
>
> [bunch of irrelevant stuff]
> router.scm:249: intarweb#read-urlencoded-request-data
> spiffy.scm:509: k625
> spiffy.scm:497: g628
> spiffy.scm:511: handle-exception
> spiffy.scm:512: chicken.port#with-output-to-string
> ```
>
> (router.scm is mine)
>
> Unfortunately that section of spiffy is a long and complex method and the
> error handler is surrounding a LOT of functionality, so it's not clear to
> what's blowing up.
>
> I tried bringing the uri-common.scm (since it seems plausible that this is
> a decoding issue) and spiffy.scm into my project and compiling them into
> the app (one at a time) but I always end up with this error:
>
> ```
> Error: during expansion of (import-syntax ...) - unbound variable: ����
> ```
>
> I'm happy to debug things but I could really use some help. Maybe if
> someone could tell me the magic incantation to include a file from an egg
> without that error so that I could then start breaking it down and
> eliminating problems?
>
>
> Any insight would be appreciated.
> Thanks.
>
> - Kay Rhodes
> https://masukomi.org
>

Reply via email to