【发布时间】:2011-12-06 12:37:36
【问题描述】:
为一个项目评估 Lurasoft RESTler 并停留在他们的示例上——试图通过发布请求的正文传递 JSON 结构......我有一个通过 URL 传递数据的工作设置,但我想弄清楚这个 post-via-body 数据:
所以,我有一个简单的方法来处理 UserAccount 类中定义的 POST 请求:
function post($_requestData = null) {
if (is_null($_requestData)) {
throw new RestException(HTTPCODE_NO_CONTENT, "requestData is null");
}
return(array('success' => array('code' => HTTPCODE_OK, 'msg' => $msg)));
}
我用 curl 调用:
curl -X POST http://ll2api/userprofile -H "Content-Type: application/json" -d '{"email_pro" : "mshallop@nileguide.com"}'
我每次都会被退回:
{
"error": {
"code": 204,
"message": "No Content: requestData is null"
}
}
如果我使用 LuraCast 在其网站上推荐的工具 RESTConsole v 4.0.2 来生成 REST 请求,我会看到在使用“请求参数”部分定义有效负载时接收数据的位置,如请求正文:
Request Url: http://ll2api/userprofile
Request Method: POST
Status Code: 200
Params: {
"email_pro": "mshallop@gmail.com"
}
最后,通过阅读他们的示例,我看到输入参数“$requestData”在他们的 validate() 方法中被分解为关联数组,将 JSON 输入视为关联数组...
为了完整起见,这里是 REQUEST 标头:
Accept: application/json
Accept-Language: en
Content-Type: application/json
Connection: keep-alive
Origin: chrome-extension: //rest-console-id
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.904.0 Safari/535.7
所以,tl;dr:为避免阻塞 REST 请求的 URL,我如何通过 POST 请求的主体将 JSON 数据传递给 LuraCast RESTler 并在方法中提取所述变量?
参考网站:http://help.luracast.com/restler/examples/_006_crud/readme.html
感谢任何帮助 - 这是我第一次在 REST 上运行,所以我怀疑我的问题是 pbck/nub...
谢谢!
【问题讨论】: