を調べましたNetwork.HTTP
が、適切に URL エンコードされたキーと値のペアを作成する方法が見つかりません。
[(key, value)]
たとえば、ペアリストから必要な投稿データを生成するにはどうすればよいですか? このようなものはすでに存在していると思いますが (おそらくNetwork.HTTP
パッケージに隠されている可能性があります)、見つけることができません。
を調べましたNetwork.HTTP
が、適切に URL エンコードされたキーと値のペアを作成する方法が見つかりません。
[(key, value)]
たとえば、ペアリストから必要な投稿データを生成するにはどうすればよいですか? このようなものはすでに存在していると思いますが (おそらくNetwork.HTTP
パッケージに隠されている可能性があります)、見つけることができません。
をご覧くださいurlEncodeVars
。
urlEncodeVars :: [(String, String)] -> String
ghci> urlEncodeVars [("language", "Haskell"), ("greeting", "Hello, world!")]
"language=Haskell&greeting=Hello%2C%20world%21"
HTTP POST data を実行しようとしている場合、これは適切な選択x-www-form-urlencoded
でurlEncodeVars
はない可能性があります。この関数は、注目に値する 2 つの点でapplication/x-www-form-urlencoded エンコーディング アルゴリズムurlEncodeVars
に準拠していません。
%20
代わりにスペースをエンコードします+
*
します%2A
*
の関数の横にあるコメントに注意してくださいNetwork.HTTP.Base
。
-- Encode form variables, useable in either the
-- query part of a URI, or the body of a POST request.
-- I have no source for this information except experience,
-- this sort of encoding worked fine in CGI programming.
適合エンコーディングの例については、パッケージ内のこの関数を参照してください。hspec-wai