我将绝对相同的请求发送到guzzle php和postman扩展名的端点。
在向Postman发送请求时 - 我确实会收到响应,但是当我用guzzle发送相同的请求时,我会得到"提供的无效用户凭据"。
我有auth类型基本,并为两个应用程序提供相同的用户名/密码。这是我用于guzzle的代码:
$credentials = [$client->api_username, $client->decrypted_password, 'basic'];
$result = $this->client->get($fullUrl, [
'auth' => $credentials
]);
我已经倾倒了凭据 - 这是正确的数组。我已经仔细检查了guzzle文档。有趣的是,当我试图向另一个用户发送相同端点的请求时 - 我确实收到正确的响应,这让我认为,我可能会在凭据中输入错别字 - 但是我已经重新检查了 - 甚至从Postman粘贴了复制 - 仍然无法收到响应:/
您是否喜欢分享您的变量$credentials
作为数据的内容?如果尝试下面的代码进行测试并有效:
$client = new Client();
$this->results = $client->request('GET/POST', $uri, [
'debug' => true,
'query' => $arguments,
'auth' => [$username, $password],
'verify' => false
])->getBody();
,如果您询问其他参数,例如verify
,此属性会告诉Guzzle禁用证书验证。
阅读下面:http://docs.guzzlephp.org/en/stable/request-options.html#verify
有关auth
的更多信息:http://docs.guzzlephp.org/en/stable/request-options.html#auth
您能比较邮递员和guzzle的Authentication
标头吗?如果您从Guzzle那里得到例外,则可以像$exception->getRequest()->getHeader('Authentication')
一样获得它。