我们以前发http请求的时候,都是手动去拼出请求,例如

"http://example.com/" ++  "login.php?username=" ++ AccName ++ "&password=" ++ hmisc:md5(PassWd) ++ "&time=" ++ integer_to_list(hmisctime:unixtime()).

但是问题来了,最近弄data eye的http://wiki.dataeye.com/g/document/server/restapi/restapi-api.html,参数巨多,一口气拼完,估计要死掉了。

后来,想想自己写js的时候,用jQuery发请求包,好像也没那么蛋疼,就是JSON对象,然后调用下函数即可。如果Erlang能搞成这样,其实也挺好维护的。

所以,我就实现了。

-define(REST_URL, "http://ext.gdatacube.net/dc/rest/").


test() ->
    req("actOrReg", [{"accountId", "seonzhang3"},
                      {"platform", "1"},
                      {"gameRegion", "Game"},
                      {"channel", "Game"}]).

req(Path, Query0) ->
    Query = [{"appId", "appid"} | Query0],
    Q = mochiweb_util:urlencode(Query),
    Url = mochiweb_util:urlunsplit_path({?REST_URL ++ Path, Q, []}),
    do_req_by_your_http_get(Url).