Guzzle 抛出 401 或 406 异常

Guzzle throws 401 or 406 exception

cURL 工作正常:

curl -H "X-ApiToken: myapitoken" https://api.fulcrumapp.com/api/v2/records

Guzzle 没有:

$client = new Client();
$request = $client->createRequest('GET', "https://api.fulcrumapp.com/api/v2/records");
$request->setHeader("X-ApiToken:" , "myapitoken");
$response = $client->send($request);

这会返回 401 错误:未授权。这是我第一次使用 Guzzle,但在我的搜索中我没有看到这个错误。似乎是一个简单的请求,所以我不确定它为什么会失败。

谢谢!

setHeader 方法采用不带冒号的 header 名称。将 "X-ApiToken:" 更改为 "X-ApiToken"

我不得不添加另一个 header 来明确告诉它处理 json

$request->setHeader("Accept" , "application/json");

感谢您指出 401 是一个假错误 - 真正的错误是 406,这让我了解了如何实际修复它。