1

のような URL でパラメーターを送信しようとしていますhttp://localhost:3000/register?name=Chris&job=typist。を使用して文字列として一度に送信できますがhttpc:request、クエリパラメーターを URL に入れる関数が見つかりません (辞書があれば)。

この機能を備えた別の HTTP ライブラリを使用する必要がありますか?

ハッシュ/辞書/マップ (json {"a" : "b", "c" : "d"}) を使用してルート URL を指定し、それを URL の最後に正しく追加したいと思います。たとえば、与えられ、与え"www.facebook.com"られ[{"a", "b"}, {"c", "d"}]ます"www.facebook.com?a=b&c=d"

Ruby に関する同様の質問は次のとおりです: Ruby: How to turn a hash into HTTP parameters?

4

2 に答える 2

0

「ハッシュ」の意味は正確にはわかりませんが、タプルからクエリ文字列を作成する場合は、かなり簡単な作業です。

私はあなたが望む機能を提供するためのhttpcの方法に精通していません。これと同様に、request/4のラッパーを非常に簡単に作成できます。

(このプログラムは、あなたにアイデアを与え、エラーを許すために急いで構築されています)。

request(Method, Domain, {Path, Query, Fragment}, HTTPOptions, Options) -> 
    QueryString = lists:flatten([Path,
                   case Query of "" -> ""; _ -> [$? | Query] end,
                   case Fragment of "" -> ""; _ -> [$# | Fragment] end]);
    Request = concat(Domain, QueryString);
    httpc:request(Method, {Request, []}, HTTPOptions, Options).

あなたはそれを次のように呼び出すことができます

request(get, "http://www.example.com", {"/path", "", "bar?baz}, HTTPOptions, Options)

于 2012-09-03T22:01:17.963 に答える
0

この機能を試してください

test(URL,QP)->URL++"?"++loop(QP,[]).

loop([{A,B}],QP)->QP++A++"="++B;
loop([{A,B}|T],QP)->loop(T,QP++A++"="++B++"&").

それを呼び出すtest("www.facebook.com",[{"a", "b"}, {"c", "d"}]). と返されます"www.facebook.com?a=b&c=d"

于 2012-10-17T21:27:18.053 に答える