当前位置 : 主页 > 网页制作 > JQuery >

jquery – Codeception – POST原始JSON字符串

来源:互联网 收集:自由互联 发布时间:2021-06-15
我正在使用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" } }}$
我正在使用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"
    }
  }
}
$.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

网友评论