我刚刚开始使用 Yaws 尝试创建一些简单的 RESTful Web 服务,但是我遇到了一个意想不到的问题:当我执行 PUT 请求时,我似乎无法访问我的数据。当我尝试使用 yaws_api:parse_post 函数时,出现以下错误:
ERROR: Can't parse post body for 'PUT' requests: URL: ...
我写出了整个请求,一切看起来都一样,所以我很困惑。难道我做错了什么? GET 和 POST 工作正常。事实上,我现在处理 POST 和 PUT 的方式之间的唯一区别就是我为每个 POST 所显示的内容,因为现在我只是编写测试代码来显示成功。
提前致谢。
最佳答案
我还觉得奇怪的是,Yaws API 中没有与非 POST HTTP 方法等效的 parse_post/1。
无论如何,我只是使用 parse_query/1 进行 PUT。给定一个 param1=abc、param2=def 的 PUT 请求:
index(Args) ->
case yaws_arg:method(Args) of
'PUT' ->
Parsed = yaws_api:parse_query(Args),
io:format("PUT PARAMS=~p", [Parsed]),
....
'POST' ->
....
输出是:
PUT PARAMS=[{"param1","abc"}, {"param2","def"}}]
(上面的例子是在 Erlyweb Controller 中。)
关于rest - 雅司病和 PUT 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933588/