5

を調べましたNetwork.HTTPが、適切に URL エンコードされたキーと値のペアを作成する方法が見つかりません。

[(key, value)]たとえば、ペアリストから必要な投稿データを生成するにはどうすればよいですか? このようなものはすでに存在していると思いますが (おそらくNetwork.HTTPパッケージに隠されている可能性があります)、見つけることができません。

4

3 に答える 3

8

をご覧くださいurlEncodeVars

urlEncodeVars :: [(String, String)] -> String
ghci> urlEncodeVars [("language", "Haskell"), ("greeting", "Hello, world!")]
"language=Haskell&greeting=Hello%2C%20world%21"
于 2012-07-31T02:59:15.207 に答える
5

HTTP POST data を実行しようとしている場合、これは適切な選択x-www-form-urlencodedurlEncodeVarsはない可能性があります。この関数は、注目に値する 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

于 2016-05-03T15:42:30.387 に答える