gpt4 book ai didi

php - Guzzle PUT 请求身份验证错误

转载 作者:搜寻专家 更新时间:2023-10-31 21:23:20 25 4
gpt4 key购买 nike

我有以下代码使用来自另一个系统的 API 保存内容。我已经添加了凭据,但它显示了错误的凭据错误。它在 postman 中完美运行。

    $client = new GuzzleHttpClient();
try {
$request = new \GuzzleHttp\Psr7\Request('PUT', config('cms.api.backend') .'/products/'. $nid,
[
'auth' => [config('cms.api.user'), config('cms.api.password')],
'form_params' => [
'copywrite' => Input::get('copywrite'),
'status' => $status
],
]);
$promise = $client->sendAsync($request)->then(function ($response) {});
$promise->wait();
}
catch (RequestException $e) {
$this->logHttpError($e->getResponse()->getStatusCode(), $e->getResponse()->getBody(true));
}

上面的代码有什么问题吗?

以下是postman导出的代码

$request = new HttpRequest();
$request->setUrl('http://mybackend/api/products/74371');
$request->setMethod(HTTP_METH_PUT);

$request->setHeaders(array(
'postman-token' => 'e0ddcaea-4787-b2c5-0c52-9aaee860ceac',
'cache-control' => 'no-cache',
'authorization' => 'Basic authenticationcode',
'content-type' => 'application/x-www-form-urlencoded'
));

$request->setContentType('application/x-www-form-urlencoded');
$request->setPostFields(array(
'copywrite' => 'date to be saved'
));

try {
$response = $request->send();

echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}

最佳答案

\GuzzleHttp\Psr7\Request 中的第三个参数仅用于 header 数组,因此您不会以这种方式发送请求正文(第 4 个参数)。最简单的方法是将此数组作为第二个参数传递给 sendAsync() 方法。它会识别它们并且 form_params 选项将被解析为 Content-Type: application/x-www-form-urlencoded header 并为您的请求创建一个有效的流(它使用http_build_query() 函数(如果您想直接在请求构造函数中执行):

$request = new \GuzzleHttp\Psr7\Request('PUT', config('cms.api.backend') .'/products/'. $nid);
$options = [
'auth' => [config('cms.api.user'), config('cms.api.password')],
'form_params' => [
'copywrite' => Input::get('copywrite'),
'status' => $status
],
];


$promise = $client->sendAsync($request, $options)->then(function ($response) {});
$promise->wait();

关于php - Guzzle PUT 请求身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41697680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com