J'ai le code suivant pour sauvegarder le contenu en utilisant l'API d'un autre système. J'ai ajouté les informations d'identification, mais il montre une erreur d'informations d'identification incorrecte. Cela fonctionne parfaitement chez le facteur.Erreur d'authentification de requête PUT de Guzzle
$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));
}
Qu'est-ce qui pourrait ne pas fonctionner dans le code ci-dessus?
Voici le code exporté par le facteur.
$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;
}
Pourriez-vous montrer que vous demande d'exemple ai envoyé avec succès avec un facteur (pas besoin de données exactes)? – shudder
@shudder - J'ai ajouté à la question, veuillez vérifier – Unnikrishnan