You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Vuforia API获取市场列表时遭遇400错误请求求助

排查Vuforia API GET请求400 Bad Request(请求头方向)

既然你已经确认签名没问题,那咱们从请求头的细节和配套要求入手排查,以下是几个容易踩的坑:

1. 严格校验Authorization头格式

Vuforia对这个头的格式要求非常苛刻,别小看这些细节:

  • VWS后面只能跟一个空格,冒号前后绝对不能加空格,正确格式是VWS {provision_access_key}:{Signature}
  • 确认用对了密钥:获取市场列表需要的是Provision Access Key,不是Server Access Key,很多人会在这里搞混

2. 不能缺少的配套请求头

Vuforia的GET请求不是只带Authorization就行,这两个头必须加上:

  • Date:必须是符合RFC 1123标准的时间字符串(比如Tue, 15 Nov 1994 08:12:31 GMT),而且要和你生成签名时用的时间完全一致,差一秒都不行
  • Content-Type:虽然是GET请求,但部分场景下必须指定为application/json,建议直接加上试试

3. 代码层面的常见错误(结合典型写法)

假设你用Python的requests库,类似这样的代码:

import requests
import hmac
import hashlib
from datetime import datetime

provision_key = "你的Provision密钥"
secret_key = "你的Provision密钥对应的Secret"
url = "https://vws.vuforia.com/v1/markets"

# 生成符合要求的时间字符串
date_str = datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT')
# 生成签名(注意这里用的是Provision的Secret)
signature = hmac.new(secret_key.encode(), date_str.encode(), hashlib.sha1).hexdigest()

headers = {
    "Authorization": f"VWS {provision_key}:{signature}",
    "Date": date_str,
    "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
print(response.status_code, response.text)

重点检查:

  • Date的格式:星期和月份必须是英文缩写(比如Tue、Nov),时区必须是GMT,别用本地时区或者其他格式
  • 签名用的时间和请求头里的Date必须是同一个字符串,生成签名后别再修改时间
  • 如果是其他语言(比如Java/JS),注意日期格式化工具的Locale设置,比如Java要指定Locale.US,避免生成中文的星期或月份

4. 最后确认URL路径

获取所有市场的正确URL是https://vws.vuforia.com/v1/markets,别写错路径(比如多了/少了v1,或者把markets拼错)

如果以上都排查完还是有问题,建议把你的完整请求头(敏感信息打码)和代码片段贴出来,这样能更精准定位问题~

内容的提问来源于stack exchange,提问作者alexisdle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:28:59