[racket] HTTP POST: curl vs racket net library
Here is an example (which worked once) I am trying to replicate in Racket.
curl https://api.stripe.com/v1/customers \
   -u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \
   -d "description=Customer for test at example.com" \
   -d card=tok_14unJi2eZvKYlo2C804uRph5
Here is my Racket code that does a "similar" thing.
#lang racket
(require net/http-client)
(require net/url)
(require net/uri-codec)
(require net/base64)
(require json)
(define (authcode key)
  (base64-encode (string->bytes/utf-8 key)))
(define (make-customer #:email email #:token token)
  (define-values (status-code header inport)
    (http-sendrecv
     "api.stripe.com"
     "/v1/customers"
     #:ssl? #t
     #:method "POST"
     #:data (alist->form-urlencoded
             (list (cons 'card "token")))
     #:headers (list (format "Authorization: Basic ~a"
                             (authcode
"sk_test_BQokikJOvBiI2HlWgH4olfQ2:")))))
  (read-json inport))
(make-customer #:email "jondo at example.com"
               #:token "tok_14unJi2eZvKYlo2C804uRph5" )
The above results in
'#hasheq((error
          .
          #hasheq((param . "\r\ncard")
                  (message
                   .
                   "Received unknown parameter: \r\ncard")
                  (type . "invalid_request_error"))))
Questions:
1) Why does the server parses \r\nkey instead of just key when using Racket?
2) Is there a less verbose way to express the same thing?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20141103/b3ee77a0/attachment.html>