1.基本信息获取
获取QueryString [{k1,v1},{k2,v2}]
Get = Req:parse_qs()
获取post信息
Post = Req:parse_post()
获取header示例,只要HTTP Request头中有的,均可采用此方法获取,其内部存储结构是[{"user-agent","xxxx"}]
mochiweb获取数据方式:
proplists:property("user-agent",[{"user-agent","xxxx"}])
我们可以通过Req对象获取某个具体的Header
User_agent = Req:get_header_value("user-agent")
2.Response
Req:Response/2 Response/3
Response/2实则调用的是 Response/3,只是第二个参数列表为[]
下面我们讲解一下Response/3
第一个参数是服务器状态ID(具体ID解释请参见http://www.checkupdown.com/status/error1.html)
第二个参数key-value list,表示你要设置哪个Response Header
第三个参数是返回的数据
e.g.
使浏览器重定向:
Req:respond({302, [{"Location", RdURL}], "Redirecting to " ++ RdURL})
写Cookies:
Req:ok({"html/text", [mochiweb_cookies:cookie("uid",Cookies, [{max_age, 360000000}, {local_time, LocalTime}]) ], <<"hello world">>})
3.其他
由于浏览器请求进来时会携带keep-alive信息,因此服务器会一直保持SOCKET连接,如果我们不是做聊天室,不需要keep-alive,那么我们可以强制让mochiweb帮我们断开连接,只需要加上如下代码
put(mochiweb_request_force_close,true)