我正在使用jQuery发送以下请求 var url = 'http://site.local/api/package/create';var data = { "command": "package", "commandParameters": { "options": [ { "a": true } ], "parameters": { "node_id": 1111, "node_name": "Node Name" } }}$
var url = 'http://site.local/api/package/create'; var data = { "command": "package", "commandParameters": { "options": [ { "a": true } ], "parameters": { "node_id": 1111, "node_name": "Node Name" } } } $.ajax({ url: url, type: "POST", data: JSON.stringify(data), contentType: "application/json", success: function (a, b, c) { // Do something with response } });
使用Postman(Chrome插件)做类似的事情
POST Content-Type: application/json Payload: { "command": "package", "commandParameters": { "options": [ { "a": true } ], "parameters": { "node_id": 1111, "node_name": "Node Name" } } }
我打算将原始JSON字符串发送到我的服务器,而不是让Jquery将其转换为发布数据.
我如何在Codeception中执行相同的操作,我只是在文档中看不到它,我只看到以下内容..
$I->sendAjaxPostRequest('/updateSettings', array('notifications' => true));
所以我想我想在Codeception中发出一个POST请求,同时在请求的主体中附加JSON?
codeception / src / Codeception / Module / REST.php中的encodeApplicationJson函数检查标头“Content-Type”和值“application / json”是否存在.如果设置了这个,它会返回json_encode($parameters),这是我想要的字符串,所以我最终做了这样的事……
$I->haveHttpHeader('Content-Type', 'application/json'); $I->sendPOST('api/package/create', [ 'command' => 'package', 'commandParameters' => [ 'options' => [], 'arguments' => [] ] ]); $I->canSeeResponseCodeIs(200); $I->seeResponseIsJson();
关于sentpost和sendajaxpostrequest之间区别的一些信息
http://phptest.club/t/what-is-the-difference-between-sendpost-and-sendajaxpostrequest/212#post_2