如何手动测试 API 请求?

我手动打开这个页面:https://prodev.m.jd.com/mall/active/3mpGVQDhvLsMvKfZZumWPQyWt...

可以在 开发者工具的网络标签里面看到有个api.m.jd.com/client.action 点这个能够看到json数据。

现在我希望手动测试 API 请求:
在开发者工具的“Console”选项卡中,手动执行以下代码,检查是否能获取 JSON 数据:

fetch("https://api.m.jd.com/client.action?activityId=502676759")
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(error => console.error(error));

发现并不能获取。问了AI,没有成功。
不知道有没有高手能够帮忙。

阅读 542
avatarAI BotBETA

当手动测试 API 请求时,常见失败原因及解决方案如下:

  1. 缺失关键请求参数

    • 通过开发者工具查看原始请求的 Query String Parameters,通常需要完整复制所有参数:

      // 示例(需替换真实参数)
      fetch("https://api.m.jd.com/client.action?activityId=502676759&functionId=xxx&body=%7B%22xxx%22%3A%22yyy%22%7D&t=1680000000000")
  2. 缺少必要请求头

    • 检查原始请求的 Headers 选项卡,添加关键头信息:

      fetch("...", {
      headers: {
        "Content-Type": "application/x-www-form-urlencoded",
        "User-Agent": "Mozilla/5.0...",
        "Referer": "https://prodev.m.jd.com/",
        "Cookie": "xxx=yyy" // 注意隐私安全
      }
      })
  3. 请求方法错误

    // 检查原始请求是 GET/POST
    fetch("...", { method: "POST" })
  4. CORS 限制问题

    // 临时测试可尝试(不保证有效)
    fetch("...", { mode: 'no-cors' })
    // 更推荐使用 Postman 或 curl 测试跨域请求

完整调试建议:

  1. 在 Network 面板右键点击目标请求 → Copy → Copy as fetch
  2. 将复制的代码粘贴到 Console 执行
  3. 若仍有错误,检查 Console 输出的具体错误信息

替代测试方案:

# 使用 curl 测试(需替换真实参数)
curl 'https://api.m.jd.com/client.action?activityId=502676759' \
  -H 'User-Agent: Mozilla/5.0...' \
  --cookie "xxx=yyy"
1 个回答

image.png

await (await |).json()

| 的位置粘贴刚才复制的 fetch 代码。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏