如何在REST POST资源中设置状态代码.
现在我正在这样做
make_post(Req, State) ->
lager:info("post"),
Resp = cowboy_req:set_resp_body(<<"HELLO POST\n">>, Req),
{ok, Resp3} = cowboy_req:reply(201, Resp),
{true, Resp3, State}.
Run Code Online (Sandbox Code Playgroud)
但我收到这样的错误:
1:43:10.510 [info] [nonode @nohost #pbshare_logic_registration#<0.205.0>] [handle_info#35]:从<0.204.0退出逻辑原因:{function_clause,[{cowboy_req,回复,[204,[ ],<< >> {http_req,#端口<0.6355>,ranch_tcp,存活,<0.204.0>,<< "POST" >> 'HTTP/1.1',{{127,0,0,1} ,50024},<< "本地主机" >>,未定义,8080,<< "/休息/注册/使" >> [<< "使" >>],<< >>,未定义[],[ {<< "用户代理" >>,<< "卷曲/ 7.29.0" >>},{<< "宿主" >>,<< "本地主机:8080" >>},{<< "接受" >>,<<" / ">>},{<<"content-type">>,<<"application/json">>},{<<"内容长度" >>,<< "14" >>}],[{<< "内容长度" >>,14},{<< "期望" >>,未定义},{<<"内容-length ">>,14},{<<" 内容类型 ">> {<<" 应用 ">>,<<" JSON ">>,[]}},{<<" 如果 - 改进释放因为 ">>,不确定},{<<" 如果 - 无 - 匹配 ">>,不确定},{<<" 如果未修饰,因为 ">>,不确定},{<<" 如果匹配">> ,不确定},{<< "接受" >> [{{<<">,{<< "应用" >>,<< "JSON" >>,[]}},{<< "如果 - 修改 - 自" >>,未定义},{<< "如果 - 无匹配" >>,不确定},{<< "如果未修饰,因为" >>,不确定},{<< "如果匹配" >>,不确定},{<< "接受" >> [{{<< ">,{<< "应用" >>,<< "JSON" >>,[]}},{<< "如果 - 修改 - 自" >>,未定义},{<< "如果 - 无匹配" >>,不确定},{<< "如果未修饰,因为" >>,不确定},{<< "如果匹配" >>,不确定},{<< "接受" >> [{{<< "">>,<<"">>,[]},1000,[]}]}],未定义,[{字符集,未定义},{媒体类型,{<<" 应用 ">>,<<" JSON">>,[]}} ],做,未定义<< >>,假,做,[] << >>,未定义}],[{文件, "SRC/cowboy_req.erl"},{线,948}]},{cowboy_rest ,响应,3,[{文件, "SRC/cowboy_rest.erl"},{线,1085}]},{cowboy_rest,升级,4,[{文件, "SRC/cowboy_rest.erl"},{线,75 },} {cowboy_protocol,execute,4,[{file,"src/cowboy_protocol.erl"},{line,523}]}]} 21:43:10.510 [错误] [未定义#Undefined#emulator] [未定义#Undefined]:进程<0.204.0>出错,退出值为:{function_clause,[{cowboy_req,reply,[204,[],<< 0 bytes >>,{http_req,#Port <0.6355>,ranch_tcp,keepalive ,<0.204.0>,<< 4字节>>,'HTTP/1.1',{{127,0,0,1},50024},<< 9字节>>,undefined,8080,<< 23 bytes >>,[<< 4 bytes >>],<< 0 bytes >>,undefined,[],[{<< 10 bytes >>,<< 11 bytes >>} ,{<< 4字节>>,<< 14字节>>},{<< 6字节>>,<< 3字节>>},{<< 12字节>>,<< 16字节>>},{ << 14 bytes >>,<< 2 bytes >>}],[{<< 14 bytes >>,14},{<< 6 bytes >>,undefined},{<< 14 bytes >>,14}, {<< 12 bytes >>,{<< 11 bytes >>,<< 4 bytes >>,[]}},{<< 17 bytes >>,undefined},{<< 13 bytes >>,undefined}, {<< 19 bytes >>,undefined},{<< 8 bytes >>,undefined ...<4 bytes >>,<< 14 bytes >>},{<< 6 bytes >>,<< 3 bytes >>},{<< 12 bytes >>,<< 16 bytes >>},{<< 14 bytes >>,<< 2 bytes >>}],[{<< 14 bytes >>,14},{<< 6 bytes >>,undefined},{<< 14 bytes >>,14},{<< 12字节>>,{<< 11字节>>,<< 4字节>>,[]}},{<< 17字节>>,未定义},{<< 13字节>>,未定义},{<< 19字节>>,undefined},{<< 8字节>>,未定义...<4 bytes >>,<< 14 bytes >>},{<< 6 bytes >>,<< 3 bytes >>},{<< 12 bytes >>,<< 16 bytes >>},{<< 14 bytes >>,<< 2 bytes >>}],[{<< 14 bytes >>,14},{<< 6 bytes >>,undefined},{<< 14 bytes >>,14},{<< 12字节>>,{<< 11字节>>,<< 4字节>>,[]}},{<< 17字节>>,未定义},{<< 13字节>>,未定义},{<< 19字节>>,undefined},{<< 8字节>>,未定义...11个字节>>,<< 4个字节>>,[]}},{<< 17个字节>>,未定义},{<< 13个字节>>,未定义},{<< 19个字节>>,未定义}, {<< 8字节>>,未定义...11个字节>>,<< 4个字节>>,[]}},{<< 17个字节>>,未定义},{<< 13个字节>>,未定义},{<< 19个字节>>,未定义}, {<< 8字节>>,未定义...
在我的回复之后,似乎牛仔试图再次发送回复.但我在API中没有任何其他方法可以更改状态代码.