2009-03-30 5 views

Répondre

3

Vous devez transmettre les variables de publication dans le contenu de la demande de publication. La manière la plus courante est application/x-www-form-urlencoded, bien que multipart/form-data puisse être utilisé si vous devez effectuer des téléchargements de fichiers; Voir here pour plus de détails sur les codages.

Pour transmettre des informations dans une requête POST à ​​l'aide de application/x-www-form-urlencoded, vous devez transmettre le type de contenu et une chaîne de requête codée par URL comme contenu. Quelque chose comme cela devrait fonctionner:

(thttp:http-post "http://example.com/submit-form" "application/x-www-form-urlencoded" 
       "foo=bar&baz=quux") 

Si vous avez besoin pour échapper à des chaînes qui seront transmises en tant que clés ou des valeurs pour les requêtes POST, vous pouvez utiliser escape-url-query pour leur échapper pour être sûr de passer dans une url corps codé:

(thttp:http-post "http://example.com/submit-form" "application/x-www-form-urlencoded" 
       (format nil "foo=~a&bar=~a" (thttp:escape-url-query foo) 
              (thttp:escape-url-query bar)))) 
1

Vous devez coder le corps POST comme une chaîne. Voir http://en.wikipedia.org/wiki/POST_(HTTP) par exemple. Pour créer un flux de caractères à partir d'une chaîne, utilisez -in-input-from-string ou make-string-stream.