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,这让我了解了如何实际修复它。
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,这让我了解了如何实际修复它。