# AntiAkamaiSensorRelayTask

只计算 Akamai `sensor_data`，由你自己的客户端会话发送。适用于 cookie 必须来自发送 sensor 的那个会话的场景，例如 queue-it 入队。

## 任务类型

`AntiAkamaiSensorRelayTask`

## 处理方式

异步 + 轮询 `/getTaskResult`

## 参数

| Field | Type | Required | Notes |
|---|---|---|---|
| `type` | string | yes | `AntiAkamaiSensorRelayTask` |
| `sessionId` | string | yes | 由你生成，每一轮传同一个值 |
| `cookies` | object | yes | 首轮必须包含 `_abck` 和 `bm_sz`；后续轮次传你 POST 之后的整套 cookie |
| `websiteURL` | string | yes | 页面 URL，仅首轮 |
| `sensorUrl` | string | yes | sensor 脚本 URL，仅首轮 |
| `js` | string | yes | sensor 脚本内容，仅首轮 |
| `pageHtml` | string | no | 页面 HTML，仅首轮 |
| `userAgent` | string | no | 你客户端的 User-Agent |
| `proxy` | string | no | 可选，仅首轮；后续轮次不传 |
| `nPosts` | int | no | 生成的 sensor 包数，1–7，默认 4 |

## 最小请求

```json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiAkamaiSensorRelayTask",
    "sessionId": "YOUR_SESSION_ID",
    "websiteURL": "https://TARGET/path",
    "sensorUrl": "https://TARGET/SENSOR",
    "js": "...",
    "cookies": {
      "_abck": "...",
      "bm_sz": "..."
    }
  }
}
```

## 成功 solution

```json
{
  "sessionId": "YOUR_SESSION_ID",
  "done": false,
  "sensorBody": "...",
  "sensorUrl": "https://TARGET/SENSOR",
  "sensorHeaders": {},
  "contentType": "text/plain;charset=UTF-8"
}
```

## 典型失败

`ERROR_CAPTCHA_UNSOLVABLE`, `ERROR_BAD_REQUEST`, `ERROR_TASK_NOT_SUPPORTED`

## 实现注意

每一轮返回 `sensorBody`、`sensorUrl` 和 `sensorHeaders`。用你自己的会话带上这些请求头，把 `sensorBody` POST 到 `sensorUrl`，再用同一个 `sessionId` 和 POST 之后的 cookie 创建下一轮任务。`done` 为 `true` 时会话结束，`cookies` 为最终的 cookie。

Source: https://kaptra.ai/zh/docs/task-types/anti-akamai-sensor-relay
