Php 用口吻将物体传递给身体
我正在使用Guzzle执行对RESTAPI的一些调用,我发现这非常方便 我想传递一个对象,它通常通过cURL发送-d标志,但目前没有预期的结果Php 用口吻将物体传递给身体,php,rest,guzzle,Php,Rest,Guzzle,我正在使用Guzzle执行对RESTAPI的一些调用,我发现这非常方便 我想传递一个对象,它通常通过cURL发送-d标志,但目前没有预期的结果 $request = $client->post('rest/user/current/resources/test', [], [ 'auth' => [self::USERNAME, self::PASSWORD],
$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标志传递数据。如果抛出异常,传递的对象的格式可能是唯一的问题吗?