Php 用口吻将物体传递给身体

Php 用口吻将物体传递给身体,php,rest,guzzle,Php,Rest,Guzzle,我正在使用Guzzle执行对RESTAPI的一些调用,我发现这非常方便 我想传递一个对象,它通常通过cURL发送-d标志,但目前没有预期的结果 $request = $client->post('rest/user/current/resources/test', [], [ 'auth' => [self::USERNAME, self::PASSWORD],

我正在使用Guzzle执行对RESTAPI的一些调用,我发现这非常方便

我想传递一个对象,它通常通过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个参数,而是无效参数。
$skeletonTest是空类(stdClass)的对象。

您的身份验证值是否需要位于请求的头或正文中。如果它们需要在标题中,则需要将
'auth'=>[]
移动到URL后面的
[]
中。但是,这取决于API及其预期凭据的来源。从另一个函数复制:$response=$client->get('rest/admin/current/resources/user/verify_password',['auth'=>[self::USERNAME,self::password]];以上部分工作达到了预期效果。文档建议应该使用cURL通过-u标志传递身份验证凭据,而通过-d标志传递数据。如果抛出异常,传递的对象的格式可能是唯一的问题吗?