我正在尝试在Guzzle中复制CURL POST请求,但是Guzzle请求失败。
这是成功运行的CURL请求:
$file = new \CURLFile( $document );
$file->setPostFilename( basename( $document ) );
$ch = curl_init();
curl_setopt( $ch,CURLOPT_RETURNTRANSFER,1 );
curl_setopt( $ch,CURLOPT_URL,$endpoint );
curl_setopt( $ch,CURLOPT_HTTPHEADER,[
"Authorization: Bearer " . $accessToken,"Content-Type: multipart/form-data",] );
curl_setopt( $ch,CURLOPT_POSTFIELDS,[ 'fileData' => $file ] );
$response = curl_exec( $ch );
这是我当前用于Guzzle请求的内容,但它不起作用:
$options['multipart'][] = [
'name' => 'fileData','contents' => fopen( $document,'r' ),'filename' => basename( $document ),];
$request = $provider->getauthenticatedRequest( 'POST',$endpoint,$accessToken,$options );
$response = $provider->getParsedResponse( $request );
Guzzle请求的响应如下:
{"message":"File cannot be empty","errors":[{"code":"Missing","fields":["document"]}]}
值得注意的是,我正在使用thephpleague/oauth2-client库发送请求。我正在寻找两个请求之间的任何差异,或者寻找有关如何自己进一步解决此问题的信息,因为我整天都在为此忙碌。非常感谢