I'm working on a Racket web application for which I need to proxy certain requests to a non-Racket service over HTTP. I've built a very basic proxy on top of http-sendrecv/url that works quite well for the most part.
For POST requests, I pass the request-post-data/raw of the original request as the #:data argument of http-sendrecv/url. However, I've discovered that certain POST requests (specifically involving file uploads) are not working as expected. On these requests, Chrome reports that it is performing a request with a header Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryAJOgATwBujJhhtbY and a payload as follows: ------WebKitFormBoundaryAJOgATwBujJhhtbY Content-Disposition: form-data; name="tool" corpus.CorpusCreator ------WebKitFormBoundaryAJOgATwBujJhhtbY Content-Disposition: form-data; name="palette" default ------WebKitFormBoundaryAJOgATwBujJhhtbY Content-Disposition: form-data; name="textarea-1014-inputEl" Type in one or more URLs on separate lines or paste in a full text. ------WebKitFormBoundaryAJOgATwBujJhhtbY Content-Disposition: form-data; name="upload"; filename="tmp-file.txt" Content-Type: text/plain ------WebKitFormBoundaryAJOgATwBujJhhtbY-- However, at the Racket level, request-post-data/raw returns #f for these requests — but, adding to my confusion, the bindings still show up in request-bindings/raw. Why doesn't this content show up in request-post-data/raw? Is there a way to access the raw, original data for these requests, or do I need to somehow reconstruct it from the bindings? Thanks very much, Philip -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

