我正在使用Guzzle执行一些REST API调用,我觉得非常方便。
我想传递一个对象,该对象通常通过cURL使用-d标志发送,但目前没有预期的结果。
$request = $client->post('rest/user/current/resources/test', [], [
'auth' => [self::USERNAME, self::PASSWORD],
'body' => ['skeletonTest' => $skeletonTest ]
]);
$response =$request->send();
$this->dd($response);
来自文档:
-d 'skeletonTest={skeletonTest}'
第一期:
HTTP/1.1 401 Unauthorized
虽然凭证是正确的。
第二期:
PHP Notice: Undefined variable: response in ....
这可能是什么问题? 我也尝试过使用:
$request= $client->createRequest('POST','....');
但getBody()不会返回有意义的内容。
有什么想法吗?
更新
当我提供这个时:
$request = $client->post('rest/user/current/resources/test', [
'auth' => [self::USERNAME, self::PASSWORD],
'body' => ['skeletonTest' => $skeletonTest ]
]);
$this->dd($request->send()->getBody());
输出是:
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid resource type: object' in
因此,当我删除post()方法中的第二个参数时,没有401但是Invalid Argument。 $ skeletonTest是一个空类的对象(stdClass)。