trivial-http ライブラリを使用して、http 投稿リクエストに引数を渡す方法がわかりません。投稿はできますが、投稿変数を渡す方法がわかりません。文字ストリームとして。
http://common-lisp.net/project/trivial-http/user-guide.html#http-post
trivial-http ライブラリを使用して、http 投稿リクエストに引数を渡す方法がわかりません。投稿はできますが、投稿変数を渡す方法がわかりません。文字ストリームとして。
http://common-lisp.net/project/trivial-http/user-guide.html#http-post
投稿変数を投稿リクエストのコンテンツとして渡す必要があります。最も一般的な方法は asapplication/x-www-form-urlencoded
ですmultipart/form-data
が、ファイルのアップロードが必要な場合は使用できます。エンコーディングの詳細については、こちらを参照してください。
を使用して POST リクエストで情報を渡すにはapplication/x-www-form-urlencoded
、それをコンテンツ タイプとして渡し、URL エンコードされたクエリ文字列をコンテンツとして渡す必要があります。このようなものが動作するはずです:
(thttp:http-post "http://example.com/submit-form" "application/x-www-form-urlencoded"
"foo=bar&baz=quux")
POST リクエストのキーまたは値として渡される文字列をエスケープする必要がある場合は、 を使用escape-url-query
してそれらをエスケープし、URL エンコードされた本文で安全に渡すことができます。
(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))))
POST 本文を文字列としてエンコードする必要があります。たとえば、http://en.wikipedia.org/wiki/POST_(HTTP)を参照してください。文字列から文字ストリームを作成するには、with-input-from-string または make-string-stream を使用します。